随机森林如何调参?

  统计/机器学习 监督式学习 模型验证    浏览次数:4203        分享
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面试题库 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面试题库 DS面经

sasa   2017-05-12 22:31

0

也可以参考xgb调参的方法


SofaSofa数据科学社区DS面试题库 DS面经

abuu   2017-09-14 22:47



  相关主题

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

Gradient tree boosting和random forest (随机森林) 有什么区别和联系   1回答

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

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

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

决策树算法ID3,C4.5和CART的特点、异同?   3回答

为什么随机森林比决策树更robust?   1回答

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

Extra Tree算法   1回答

如果采用非等权重的方法集成一个随机森林,会表现得更好嘛?   1回答

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

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



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

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

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

我们谢绝答非所问。

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

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