随机森林模型调参方法
一、默认参数
打印随机森林学习器的默认参数配置:
1、bootstrap=True
2、criterion='mse'
3、max_depth=None
4、max_features='auto'
5、max_leaf_nodes=None
6、min_impurity_decrease=0.0
7、min_impurity_split=None
8、min_samples_leaf=1
9、min_samples_split=2
10、min_weight_fraction_leaf=0.0
11、n_estimators=10
12、n_jobs=1
13、oob_score=False
14、random_state=None
15、verbose=0
16、warm_start=False
二、重要参数
1、系统参数
(1)random_state(随机发生器种子数)
如果是int,random_state是随机数发生器使用的种子; 如果是RandomState实例,random_state是随机数生成器; 如果为None,则随机数生成器是np.random使用的RandomState实例。
2、决策树参数
(1)max_features(最大特征数)
划分特征时的最多特征数,可以是多种类型的值。默认为“None”,即划分时考虑所有特征数。
其他值:“log2”——最多考虑log2N个特征;“sqrt”/“auto”——最多考虑sqrt(N)个特征;int(n)——可填任意大于1且不大于特征数量的整数。
一般而言,当样本特征数较少(<50)时,使用默认配置即可。
(2)max_depth(决策树最大深度)
默认为“None”,即决策树建立子树时不限制子树的深度。在样本量较少或特征数较少的情况下可以使用默认配置。否则,推荐取值10-100之间。
(3)min_samples_split(内部结点再划分所需最小样本数)
当某节点的样本数少于min_samples_split时,不会继续再尝试选择最优特征来进行划分。 默认为2,如果样本量不大,不需要管这个值。如果样本量数量级非常大,则推荐增大该值。
(4)min_samples_leaf(叶结点最少样本数)
当某叶结点数目小于样本数,则和兄弟结点一起被剪枝。默认为1。当样本量不大时,可以使用默认配置。否则推荐增大该值。
(5)min_weight_fraction_leaf(叶结点最小样本权重和)
该值限制了叶结点所有样本权重和的最小值,如果小于该值,则会和兄弟节点一起被剪枝。 默认为0,即不考虑权重问题。当样本存在较多缺失值,或分类树样本的分布类别偏差很大时,将引入样本权重,此时需要考虑该值。
(6)max_leaf_nodes(最大叶结点数)
该值能够防止过拟合,默认为“None”,即不限制最大叶结点数。但特征不多时,使用默认配置即可。否则需要设置该值,具体数值通过交叉验证获得。
(7)min_impurity_split(结点划分最小不纯度)
该值限制了决策树的增长,当某结点的不纯度小于阈值,则该结点不再生成子结点,一般推荐使用默认值1e-7。
3、Bagging框架参数
Bagging框架中各弱学习器之间没有依赖,因此随机森林的调参难度低于梯度提升树。
(1)n_estimators(弱学习器最大迭代次数)
即弱学习器的个数。一般而言,该值太小易发生欠拟合,太大则成本增加且效果不明显。一般选取适中的数值,默认为10。
(2)oob_score (是否采用袋外样本评价模型)
默认为False。推荐使用True,因为这样可以反映模型拟合后的泛化能力。
(3)criterion(特征评价标准)
分类和回归模型的损失函数不同:分类模型默认为基尼指数,也可选择信息增益;回归模型默认为均方差(mse),也可选择绝对值差(mae)。一般而言选择默认配置即可。
三、调参
一般采用网格搜索法优化超参数组合。这里将调参方法简单归纳为三条:1、分块调参(不同框架参数分开调参);2、一次调参不超过三个参数;3、逐步缩小参数范围。这里以n_estimators参数为例(省略数据和模型的导入):
#导入网格搜索模块
from sklearn.model_selection import GridSearchCV
rfr_best = RandomForestRegressor()
params ={'n_estimators':range(10,20,1)}
gs = GridSearchCV(rfr_best, params, cv=4)
gs.fit(X_train,Y_train)#查验优化后的超参数配置
print(gs.best_score_)
print(gs.best_params_)
随机森林模型调参方法相关推荐
- python 随机森林调参_python的随机森林模型调参
一.一般的模型调参原则 1.调参前提:模型调参其实是没有定论,需要根据不同的数据集和不同的模型去调.但是有一些调参的思想是有规律可循的,首先我们可以知道,模型不准确只有两种情况:一是过拟合,而是欠拟合 ...
- 【个人学习用】利用随机森林学习调参总结
按照这个博主写的进行了学习,在文章的后半段开始有调参的过程,前半段为随机森林的基础知识.https://www.jianshu.com/p/8a2e4e2872c8 数据集:sklearn自带的乳腺癌 ...
- sklearn中对随机森林进行调参
文章目录 一.闲言碎语 二.参数问题 三.结论 四.参考文献 一.闲言碎语 具体的方法可参考我的这篇文章python+sklearn进行交叉验证(使用交叉验证对数据划分,模型评估和参数估计,使用决策树 ...
- 大数据预测实战-随机森林预测实战(四)-模型调参
之前对比分析的主要是数据和特征层面,还有另一部分非常重要的工作等着大家去做,就是模型调参问题,在实验的最后,看一下对于树模型来说,应当如何进行参数调节. 调参是机器学习必经的一步,很多方法和经验并不是 ...
- 随机森林调参_机器学习-模型调参利器 gridSearchCV(网格搜索)
在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就会出现欠拟合或者 ...
- 手把手系列—风控模型的调参方法和实际应用
序言: 大数据时代的风控体系必有模型部分的参与,用策略贯穿整个风控体系,以数据为驱动,模型一定是标配内容.于是在模型的建设上,如何精细化地输出一套有效的模型,就是在精细化管理上非常重要的一个差异点.不 ...
- python模型调参三种方法
1.机器学习常用三种调参方法:网格搜索.随机搜索和贝叶斯调参 2.网格搜索是遍历式搜索方法,效率较低,资源消耗多 3.网格搜索和随机搜索都没有考虑前面搜索的先验知识 4.贝叶斯调参的原理是贝叶斯优化, ...
- ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参【2种方法,ShuffleSplit+GridSearchCV、TimeSeriesSplitGSCV】、模型评估)
ML之XGBoost:利用XGBoost算法对波士顿数据集回归预测(模型调参[2种方法,ShuffleSplit+GridSearchCV.TimeSeriesSplitGSCV].模型评估) 目录 ...
- 机器学习笔记 十九:由浅入深的随机森林模型之分类
随机森林学习内容 1. 集成学习 2.sklearn中的集成算法 2.1 sklearn中的集成算法模块ensemble 2.2 RandomForestClassifier 2.2.1 参数 2.2 ...
- 使用贝叶斯优化工具实践XGBoost回归模型调参
0. 关于调参 0.1. 超参数 在机器学习的上下文中,超参数(hyper parameters)是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据.通常情况下,需要对超参数进行优化,给学 ...
最新文章
- GDI+:自定义控件时如何使用Region来输出特定区域
- 奥拉星插件flash下载手机版下载安装_终于等到你!安卓微信7.0.13内测版发布 支持夜间模式 附下载地址!...
- 【java基础】——java枚举类型基本介绍
- C++ 预处理与宏相关编程(#,##等等)
- 学生成绩abcde怎样划分_同等教育下,学生成绩差距较大,怎样避免学习中的“马太效应”?...
- Java动态代理二——CGLIB动态代理应用
- UNIAPP中IOS和安卓应用热更新和整包更新app的方法
- PX4 ---- Mixer
- 此程序被组策略阻止,有关详细信息请联系管理员
- 阿里云开启关闭防火墙
- 网络中的“大禹”—防水墙是怎么工作的?
- 概率熵物质混乱能量耗散信息熵
- hyperledger fabric 2.3.3 环境搭建教程
- Java8的其它 新特性(笔记二十四)
- 在windows平台搭建基于nginx的直播服务器
- 确定电气间隙和爬电距离
- printf()函数
- 微信每日定时推送消息新闻到群聊或朋友
- everbox邀请码和麦库邀请码
- 偏序集的Dilworth定理学习 (转载)