随机森林如何——以及为什么——过度预测?

数据挖掘 回归 随机森林 特征缩放
2022-03-01 20:47:55

我对随机森林回归的理解是,每个叶节点都包含一个或多个训练数据中的示例。预测时,每棵树找到最合适的叶子并取样本目标值的平均值,然后森林取每棵树的值的平均值。那是对的吗?

现在来看我的具体示例:使用来自 sklearn 的 RandomForestRegressor 我使用以下参数:

{
    'n_estimators': 100, 
    'max_depth': 9, 
    'max_features': 1 / 3, 
    'criterion': 'mse', 
}

训练数据在 -2.3 和 2.3 [1]之间的范围内。训练后,我预测新值,得到 33.5 的输出。如果我对随机森林模型的理解是正确的,那应该是不可能的,因为它应该只能预测训练数据范围内的值。

更奇怪的是,如果我重新调整训练数据使其在 0 和 2.3 [2]之间的范围内并在此基础上进行训练,则预测都在预期范围内。

任何人都可以找出可能导致此问题的原因吗?


[1] 严格来说,原始数据在 0.1 到 10 的范围内,经过 ln 变换得到 -2.3 到 +2.3。通常我不会对这个范围内的数据使用对数变换,但这是一个更大数据集的子集,它可以有从 0.1 到 100,000 的任何数据。

[2] 我将所有小于 1 的原始值四舍五入到 1,所以在对数变换之后它是 0 到 +2.3。

0个回答
没有发现任何回复~