我确实有一个问题,需要您的支持。我有一个正在分析的数据集。我需要预测一个目标。为此,我做了一些数据清理,其中包括高度下降(线性相关特征)
准备好数据后,我应用了随机森林回归器(这是一个回归问题)。我有点卡住了,因为我真的无法理解其含义以及 max_features
的值我找到了以下页面answer ,写在哪里
features=n_features for regression is a mistake on scikit's part. The original paper for RF gave max_features = n_features/3 for regression
如果使用 max_features=sqrt(n) 或 max_features=n_features,我确实会得到不同的结果
any1能给我一个很好的解释如何处理这个参数吗?
那真是太棒了
最佳答案
max_features
是一个需要调整的参数。 sqrt
或 n/3
等值是默认值,通常表现良好,但需要针对每个数据集优化该参数,因为它将取决于您拥有的功能,它们的相关性和重要性。
因此,我建议使用 max_features
值网格多次训练模型,尝试从 2 到特征总数的每个可能值。
使用 oob_score=True
训练您的 RandomForestRegressor
并使用 oob_score_
评估森林的性能。循环完 max_features
的所有可能值后,保留获得最高 oob_score
的值。
为了安全起见,请将 n_estimators
保持在高端。
PS:此过程基本上是一个参数的网格搜索优化,通常通过交叉验证完成。由于 RF 为您提供 OOB 分数,因此您可以使用这些分数代替 CV 分数,因为它们的计算速度更快。
关于machine-learning - 随机森林 - 最大特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59988950/