集成学习算法与随机数森林、Adaboost原理

集成学习的目的是让机器学习算法的效果更好

集成学习主要有三种方式:
1.Bagging:训练多个分类器,并以取平均或者众数的方式去的最终结果
2.Boosting:从弱学习器开始加强,通过对分类错误的样本赋予更高的权重完成模型的强化
3.Stacking:以分阶段的模式聚和多个分类或回归模型

降方差(bagging)减偏差(boosting)提升预测准确性(stacking)


Bagging
Bagging方法最大的特点是并行训练一堆分类器
全称:boostrap aggregation
最典型的代表就是随机森林

并不是所有算法都适合继承,公认的基础模型就是数模型

随机森林原理
随机(随机森林算法最重要的特点):数据采样随机(这里的数据采样是从所有数据中有放回采样,注意每一棵决策树样本量是相同的)、特征选取随机(每一棵决策树选取的总特征数量也是相同的)(进行随机的目的是要保证模型的泛化能力)
森林:很多个决策树并行放在一起

随机森林优势:
1.可以处理高纬度数据,并且不用特征选取工程
2.训练完成后,它能够给出哪些feature比较重要
3.并行训练,速度比较快
4.可以进行可视化分析

feature重要性比较方式:
例如比较B属性的重要性:先以A、B、C、D四个特征构建模型并最终得出一个准确率,再以随机值替换B特征并以A、B’、C、D四个特征构建模型得出准确率。如果两次的准确率差异不大,则说明B特征重要性不强,如果两次准确性差异较大,则说明B特征比较重要。

理论上来说越多的树效果越好,但实际上超过一定数量准确率就在上下浮动了


Boosting
Boosting方法的最大特征是串行训练,从弱学习器开始一步步强化学习器
最典型代表:Adaboost、Xgboost

Adaboost原理
Adaboost方法会根据前一次分类的效果调整数权重,如果某一个数据在前一次分类错了,那么在下一次迭代时就会有更大的权重,最终每个分类器根据自身的准确性来确定各自的权重再合体

步骤:
1.先为每一个数据赋相同的权重,得出一个分类器 G 1 ( x ) G_{1}(x) G1(x)
2.得出该分类器的错误率 e 1 e_{1} e1
3.利用 α 1 = 1 2 log ⁡ 1 − e 1 e 1 \alpha_{1}=\frac{1}{2} \log \frac{1-e_{1}}{e_{1}} α1=21loge11e1公式计算出该分类器在总分类器中的比重
4.利用 w 2 , i = w 1 , i z 1 exp ⁡ ( − α 1 y i G 1 ( x i ) ) , i = 1 , 2 , … , 10 w_{2, i}=\frac{w_{1, i}}{z_{1}} \exp \left(-\alpha_{1} y_{i} G_{1}\left(x_{i}\right)\right), i=1,2, \ldots, 10 w2,i=z1w1,iexp(α1yiG1(xi)),i=1,2,,10公式计算第二次迭代时各个样本权重
5.例如只强化学习三次,则最后的结果为 F ( x ) = sign ⁡ ( F 3 ( x ) ) = sign ⁡ ( α 1 G 1 ( x ) + α 2 G 2 ( x ) + α 3 G 3 ( x ) ) F(x)=\operatorname{sign}\left(F_{3}(x)\right)=\operatorname{sign}\left(\alpha_{1} G_{1}(x)+\alpha_{2} G_{2}(x)+\alpha_{3} G_{3}(x)\right) F(x)=sign(F3(x))=sign(α1G1(x)+α2G2(x)+α3G3(x))

具体的公式推导是由Adaboost的损失函数(指数损失函数)求偏导得出


Stacking
Stacking方法是将很多算法堆叠在一起,可以用来对得的算法有KNN、SVM、RF等算法
Stacking算法会分阶段来完成堆叠工作
第一阶段由多个基学习器预测,得出多个预测结果,第二阶段将上一步的预测结果作为特征传入元模型,得出最终的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值