如何确定 PySpark MLlib 中随机森林算法的树参数数量?

数据挖掘 机器学习 回归 随机森林 阿帕奇火花 pyspark
2022-02-12 10:15:07

我正在研究Random Forest algorithmPySpark MLlib怀疑我们传递给模型的树参数的数量。Random Forest modelingin的标准格式PySpark MLlib是:

model = RandomForest.trainRegressor(trainingData, categoricalFeaturesInfo={},
                                    numTrees=3, featureSubsetStrategy="auto",
                                    impurity='variance', maxDepth=4, maxBins=32)

我的疑问是如何确定传递给numTrees参数的树的最佳值?我认为树木的数量越多,性能越好,但它会随着树木数量的增加而不断提高吗?是否有一个点之后它将开始对性能产生负面影响?如果是,那么如何为我的数据集找到最佳树数?

1个回答

也许你会通过增加树的数量开始对性能产生负面影响。但肯定的是,在某些时候,增加树的数量不会增加模型的准确性。

通常的方法是对不同数量的树(以及模型参数的任何其他组合)执行 k 折交叉验证,并选择性能最佳的树。如果您对交叉验证有任何疑问,请查看此页面不要使用简单的准确性,而是尝试使用考虑到模型复杂性的其他指标,例如AIC

Obs.:算法的最终准确率应该使用单独的数据集计算,而不是用于交叉验证(通常称为测试集)。