machine-learning - 随机森林 - 最大特征

标签 machine-learning scikit-learn random-forest

我确实有一个问题,需要您的支持。我有一个正在分析的数据集。我需要预测一个目标。为此,我做了一些数据清理,其中包括高度下降(线性相关特征)

准备好数据后,我应用了随机森林回归器(这是一个回归问题)。我有点卡住了,因为我真的无法理解其含义以及 ma​​x_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 是一个需要调整的参数。 sqrtn/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/

相关文章:

python - scikit-learn 中的 load_files 未加载目录中的所有文件

python - 大数据集的特征缩放

python - 如何用新数据更新 SVM 模型

python - 来自 pandas 数据框的输入的 sklearn classification_report 产生 : "TypeError: not all arguments converted during string formatting"

python - 机器学习 - 测试集的特征少于训练集

machine-learning - 主成分方差由主特征向量的特征值给出

python - 如何使用多个输入变量 LSTM 生成 1 个输出

numpy - Spark 随机森林 - 无法将 float 转换为 int 错误

r - 增加样本数据的大小 - R

python - 随机森林中的超参数调整