如何调整Sklearn的随机森林?max_depth与min_samples_leaf

max_depth VS min_samples_leaf

在多次使用GridSearchCV的尝试中,参数max_depthmin_samples_leaf最让我感到困惑。据我理解,这两个参数都是控制树深度的方式,如果我错了,请纠正我。

max_features

我正在进行一个非常简单的分类任务,改变min_samples_leaf似乎对AUC分数没有影响;然而,调整深度使我的AUC从0.79提高到0.84,变化相当显著。其他任何东西似乎都没有影响。我以为我应该主要调整的是max_features,然而,最佳结果值与sqrt(n_features)相差不大。

scoring='roc_auc'

另一个问题是,我注意到如果所有参数固定而改变树的数量时,GridSearchCV总是会选择最高的树数量。这是可以理解的,但不知为何AUC略有下降,尽管scoring='roc_auc'。为什么会这样?它是否考虑了oob_score?

请随时分享任何有助于理解如何系统地调整随机森林的资源,因为似乎有几个相关参数相互影响。


回答:

当你增加最大深度时,你增加了方差并减少了偏差。另一方面,当你增加最小样本叶时,你减少了方差并增加了偏差。

因此,这些参数将控制树生长时的正则化水平。总结来说,减少任何max*参数和增加任何min*参数都会增加正则化。

其次,很难说为什么你的准确率在下降。你可能需要尝试嵌套交叉验证来感知best_params_在推广到未见数据时的准确率范围。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注