随机森林如何调参?

  统计/机器学习 监督式学习 模型验证    浏览次数: 2891
6

我知道是通过交叉验证来比较不同参数下模型的好坏,但是有没有大致的调参的方向?哪些参数尤其重要?

 

机器小白   2017-04-24 14:05



   3个回答 
9

树的数量m:m越大越好,但是太大会影响训练速度。


树的最大深度d:d越大,越容易过拟合;越小,越容易欠拟合。如果d没有上限,那么每棵树都会是一棵完整的决策树,设置了d,相当于给树进行了剪枝


特征数量f:假设数据集一共有p个特征,树的每次分叉会随机使用f个特征,f一般设定为sqrt(p),但是也可以设定为任意数值。f越大,每棵树越像,为了增加多样性,f一般不会接近p。除了设置为固定值外,也通常可以设定为0.3*p,0.5*p等。


叶节点最小样本数量s:当某个节点上的样本数量小于s时,树就停止生长,s越小,单个决策树越容易过拟合。设置一个较大的s,也有剪枝的作用,s=5,10,50,都很常见。



不同的数据集可能有不同的最佳参数,有的最佳参数也许也很反常。但是归根结底,利用交叉验证来调整参数,选择最佳的参数组合才是最可靠的随机森林调参方法。


----更新----

上文根据Zealing的指正,已经修改。


SofaSofa数据科学社区 DS面经 问答 实战

数据痴汉   2017-05-10 23:32

谢谢痴汉! - 机器小白   2017-05-12 11:45
你回答中关于特征数量f,有问题。应该是每个节点分裂时,随机选出f个特征,然后再其中一个特征上找出最好的分裂。换句话,每棵树能见到所有的特征,而每个节点只能看见随机的f个特征。 - Zealing   2018-03-15 13:55
感谢,看来我一直对RF的这点也存在误解 - dzzxjl   2018-03-15 15:49
谢谢Zealing的指正,我去看了下,你说的对的。我修改下答案。 - 数据痴汉   2018-03-16 13:48
4

对@数据痴汉 提到的这几个参数进行grid search,然后对比cross validation之后的结果。


SofaSofa数据科学社区 DS面经 问答 实战

sasa   2017-05-12 22:31

0

也可以参考xgb调参的方法


SofaSofa数据科学社区 DS面经 问答 实战

abuu   2017-09-14 22:47



  相关主题

怎么理解随机森林的oob error?   2回答

决策树的深度和数据特征个数的关系   1回答

剪枝是什么意思   1回答

决策树是如何得到量化的概率,不只是0或1的标签?   2回答

关于knn算法中kd树的问题   1回答

随机森林中增加树的数量对于偏差和方差的影响   2回答

Adaboost里的树有没有可能权重是负数?   1回答

求问:Cart分类树为什么是基尼指数最小化准则   1回答

随机森林是如何计算测试样本的概率的?   1回答

决策树怎么做增量学习或者online学习?   1回答

决策树剪枝有什么策略或者注意事项?   2回答

决策树的熵是什么?怎么用熵来选分叉?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!