随机森林分类器 - 小 n_estimator 和重复训练的影响

数据挖掘 随机森林 决策树
2022-02-16 17:20:40

试图在这里更好地理解随机森林算法。使用相同的训练和保持数据集,我在这里尝试了两件事:

  1. 设置一个小的 n_estimator (10),在我的训练数据集上进行训练并应用于我的holdout 数据集。如果我重复这几次,结果(例如正确预测的目标类)在每次运行中都会有所不同。我的理解是,由于我的模型中树的数量很小,因此我的模型在训练后会发生变化,从而导致不同的结果。

  2. 设置一个高 n_estimator (300) 并做同样的事情。那么结果就不一样了。我的看法是,高 n_estimator 的影响减少了模型的变化,因此我每次都得到相同的预测。

因此,如果我多次运行场景 1 并合并结果(即运行 1 预测第 1 类中的 AB,运行 2 预测第 1 类中的 AC,运行 3 预测第 1 类中的 D),我的最终结果将是 ABCD 在1 类。我的问题是: 1. 这与使用大型 n_estimator 运行一次基本上相同吗?2. 这种方法是否有问题,因为我更多地依赖“猜测”(例如,小的 n_estimator 会导致结果的更大变化)?

谢谢!

1个回答

估计器中有一个称为random_state的参数,它为您的算法运行修复种子并重新运行完全相同,因此您可以在每次重新运行完全相同的代码时获得相同的结果。它使您的代码具有确定性但是,是的,特别是在随机森林中,由于它们对森林生长时创建的所有树木进行平均的性质,结果的差异变得不那么明显。所以你的推理是正确的。

如果你想让你的 low_estimators RF 在每次运行时产生相同的结果,只需添加 random_state 并给它一个随机数