这篇精彩的文章详细介绍了可调参数,如何跟踪性能与速度之间的权衡,一些实用技巧以及如何执行网格搜索。

如何使用Scikit Learn在Random Forest中调整参数?

共 3 个回答
高赞
时间
活跃
0

0

根据我的经验,sklearn RandomForestClassifier具有三个功能,按照重要性顺序值得探索:
-
n_estimators
-
max_features
-
criterion
n_estimators
确实不值得优化。您提供的估算值越多,效果就会越好。通常500或1000就足够了。
max_features
值得探索许多不同的值。这可能会对RF的行为产生很大影响,因为它决定了RF中每棵树在每个分割处考虑多少个特征。
criterion
可能会产生很小的影响,但通常默认情况下很好。如果有时间,请尝试一下。
尝试这些参数时,请确保使用sklearn的GridSearch (最好是GridSearchCV,但您的数据集大小太小)。
但是,如果我正确理解您的问题,那么您只有9个样本和3个类?大概每个课有3个样本?除非它们是好的,有代表性的记录,否则您的RF很可能会过少地容纳少量数据。
0

关键部分通常是三个要素:
- 估算器的数量-通常,森林越大越好,此处过度拟合的机会很小
- 每棵树的最大深度(默认为无,导致全树)-减小最大深度有助于对抗过度拟合
- 每个分割的最大特征数(默认sqrt(d))-您可能会玩一点,因为它会显着改变整个树的行为。 sqrt启发式通常是一个很好的起点,但实际的最佳位置可能在其他地方
新手导航
- 社区规范
- 提出问题
- 进行投票
- 个人资料
- 优化问题
- 回答问题
0
我正在使用具有9个样本和大约7000个属性的随机森林模型。在这些样本中,我的分类器可以识别3个类别。
我知道这远非理想条件,但我正在尝试找出哪些属性在特征预测中最重要。哪些参数最适合优化功能重要性?
我尝试了不同的
n_estimators
并注意到“重要特征”的数量(即feature_importances_
数组中的非零值)急剧增加。我已经阅读了文档,但是如果有任何经验,我想知道最适合调整哪些参数,并简要说明原因。