随机森林

集成算法概述

1.概念
集成算法本身不是一个单独的机器学习算法,而是通过在数据上构建多个模型,集成所有模型的建模结果。

2.集成算法的目的:
考虑多个评估器的建模结果,汇总之后得到一个综合的结果,以此来获取比单个模型更好的回归或分类表现。

3.三类集成算法:
①装袋法。代表模型——随机森林
②提升法。代表模型——Adaboost和梯度提升树
③stacking

RandomForestClassifier

由于袋装法是依赖于平均值或者少数服从多数的原则来决定集成的结果的,所以单个决策树的准确率越高,随机森林的准确率也会越高。

1.n_estimators
n_estimator越大,模型的效果往往越好。但是相应的,任何模型都有决策边界,n_estimators达到一定的程度后,随机森林的精确性往往不再上升或开始波动。

2.random_state
在分类树中,一个random_state只控制生成一棵树,而随机森林中的random_state控制的是生成森林的模式,而非让一个森林只有一棵树。

当random_state固定时,随机森林中生成一组固定的树,但每棵树依然是不一致的,这是用“随机挑选特征进行分枝”的方法得到的随机性。并且我们可以证明,当这种随机性越大的时候,袋装法的效果一般会越来越好。

3.bootstrap
要让基分类器到不一样,一种很容易理解的方法是使用不同的训练集进行训练。而袋装法正是通过又放回的随机抽样技术来形成训练数据,bootstrap就是用来控制抽样技术的参数,
bootstrap参数默认True,代表采用这种有放回的随机抽样技术。

4.oob_score
一般来说,自助集大约平均会包含63%的原始数据,会有约37%的训练数据没有参加建模,被浪费掉,这些数据被称为“袋外数据”。
除了我们最开始就划分好的测试集之外,这些数据也可以被用来作为集成算法的测试集。也就是说,在使用随机森林的时候,我们可以不划分测试集和训练集,只需要用袋外数据来测试我们的模型即可。

用袋外数据测试:在实例化时,将oob_score这个参数调整为True,训练完毕后,用随机森林的另一个重要属性:oob_score_来查看我们的袋外数据上测试的结果。

在这里插入图片描述
5.重要属性和接口
属性:①estimators;②oob_score_;③feature_importances
接口:①apply;②fit;③predict;④score;⑤redict_proba:返回每个测试样本对应的被分到每一类标签的概率,标签有几个分类就返回几个概率。

Bagging的两个必要条件

1.基分类器要尽量独立
2.基分类器的判断准确率至少要超过50%

RandomForestRegressor

1.在回归树中,MSE不只是我们的分枝质量衡量指标,也是我们最常用的衡量回归树回归质量的指标。
在我们使用交叉验证,或者其他方式获取回归树的结果时,我们往往选择均方误差作为我们的评估。然而,回归树的接口score返回的是R平方,并不是MSE。
使用时需要注明:

cross_val_score(regressor,boston.data,boston.target,cv=10,scoring='neg_mean_square_error')

用随机森林回归填补缺失值

机器学习中调参的基本思想

在机器学习中,我们用来衡量模型在未知数据上的准确率的指标,叫做“泛化误差”。
对于树模型树越茂盛,深度越深,职业越多,模型就越复杂,所以树模型是天生复杂度高的模型。随机森林的参数,都是向着一个目标:减少模型的复杂度,防止过拟合。
我们将对复杂度影响巨大的参数挑选出来,研究他们的单调性,然后专注调整那些能最大限度让复杂度降低的参数;对于那些不单调的参数,或反而让复杂度升高的参数,我们就视情况使用,大多数时候甚至可以退避。

实例:随机森林在乳腺癌数据上的调参

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值