随机森林如何调参?

  统计/机器学习 监督式学习 模型验证    浏览次数:13575        分享
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



  相关讨论

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

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

Extra Tree算法

关于knn算法中kd树的问题

决策树可以做多元分类吗?

lightgbm使用自定义损失函数后,二分类的预测结果不再是【0,1】区间

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

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

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

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

  随便看看

前馈神经网络如何选择隐藏层的数量

机器学习中的奥卡姆剃刀原理是什么意思

pandas DataFrame中经常出现SettingWithCopyWarning

医学统计里的c-index或者c-statistic是什么意思?

如何获取pyspark DataFrame的行数和列数?