随机森林模型调参方法

一、默认参数

打印随机森林学习器的默认参数配置:

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_)


  • 8
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机森林是一种集成学***树组成,通过投票或平均的方式来进行分类。是为了找到最佳的模型数组合,以提高模型的性能和泛化能力。下面是随机森林分类模型的一般步骤: 1. 确定基础模型数:首先需要确定决策树的数量(n_estimators)和每棵决策树的最大深度(max_depth)。这两个数对模型的性能影响较大。 2. 整决策树数:可以尝试整决策树的其他数,如最小样本分割数(min_samples_split)、叶子节点最小样本数(min_samples_leaf)、特征选择标准(criterion)等。 3. 整随机性相关数:随机森林中引入了随机性,可以通过整随机性相关数来控制模型的多样性。例如,可以尝试整特征选择时考虑的最大特征数(max_features)或者引入随机性的种子数(random_state)。 4. 交叉验证:使用交叉验证来评估不同数组合下模型的性能。可以使用k折交叉验证,将数据集分成k个子集,每次使用其中k-1个子集作为训练集,剩下的一个子集作为验证集。 5. 网格搜索:通过网格搜索来自动化地寻找最佳数组合。网格搜索会遍历给定的数组合,并使用交叉验证来评估每个数组合下模型的性能。 6. 模型评估:选择最佳数组合后,使用测试集来评估模型的性能。可以使用常见的分类指标,如准确率、精确率、召回率和F1值等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值