如何调整Sklearn的RandomForest? max_depth与min_samples_leaf相同

时间:2017-05-14 11:30:45

标签: machine-learning scikit-learn random-forest regularized

max_depth VS min_samples_leaf

在多次尝试使用max_depth期间,参数min_samples_leafGridSearchCV让我感到困惑。根据我的理解,这两个参数都是控制树木深度的一种方式,如果我错了,请纠正我

max_features

我正在做一个非常简单的分类任务,改变min_samples_leaf似乎对AUC分数没有影响;然而,调整深度可以将我的AUC从0.79提高到0.84,非常激烈。似乎没有其他任何东西影响它。我认为我应该调整的主要内容是max_features,但是,最佳结果值与sqrt(n_features)相距不远。

scoring='roc_auc'

另一个问题,我注意到如果在更改树的数量时修复了所有参数,GridSearchCV将始终选择最多的树。这是可以理解的,但即使scoring='roc_auc',AUC也因某种原因略有下降。这是为什么这么讨厌?它是否考虑oob_score。

请随意分享任何有助于了解随机森林如何系统调整的资源,因为似乎很少有相关参数相互影响。

1 个答案:

答案 0 :(得分:1)

当您增加最大深度时,您会增加差异并减少偏差。另一方面,当你增加 min样本叶时,你会减少方差并增加偏差。

因此,这些参数将控制树木生长时的正规化水平。总之,减少任何 max * 参数并增加任何 min * 参数将增加正则化。

其次,很难说为什么你的准确率会下降。您可能需要尝试嵌套CV ,以了解best_params_在推广到看不见的数据时所表现出的准确度范围。