集成算法(随机森林)【知识整理】

集成算法·随机森林的原理介绍(分析基础)

综述

整理一些关于数据分析的知识:本章为集成算法(随机森林)的原理介绍,具体的实现代码在下一章的titanic获救数据分析中具体讲述。

Ensemble Learning

  • 目的:让机器学习的效果更好。例如:单个决策树模型预测的准确性不太高,如果我们同时采用50棵决策树时可能达到的效果就比较好了。
  • 典型的两个模型:
    1、Bagging:训练多个分类器取平均值 f ( x ) = 1 M ∑ m = 1 M f m ( x ) f(x)=\frac{1}{M}\sum_{m= 1}^{M}f_m(x) f(x)=M1m=1Mfm(x)
    2、Boosting:从弱学习器开始加强,通过加权来进行训练 F m ( x ) = F m − 1 ( x ) + a r g m i n h ∑ i = 1 n L ( F m − 1 ( x i ) + h ( x i ) ) F_m(x)=F_{m-1}(x)+argmin_h\sum_{i = 1}^{n}L(F_{m-1}(x_i)+h(x_i)) Fm(x)=Fm1(x)+argminhi=1nL(Fm1(xi)+h(xi))(加入一棵树后,效果上升)
    3、Stacking:聚合多个分类或回归模型(简单来说就是用很多个预测模型对数据进行预测,再将所有的预测值与实际值做线性回归,得到各个预测模型的权重,最后使用整个预测系统进行预测的方式)

Bagging模型

  • 全称:bootstrap aggregation (简单说就是并行的训练一堆分类器),最典型的代表就是随机森林
  • 随机处理:为了使得每次分类器得到的结果都不一样,我们通常采用随机选取60%-80%的样本和一定数据的特征,作为一个分类器的分类输入。注意:同一个模型中样本选取比例相同,特征值选取的数量相同
  • 森林:就是将多个分类器(决策树)并行放在一起,注意:并是树的数量越多越好有时候当数量达到一定值时,效果可能很难提升,甚至会下降
    在这里插入图片描述

Random Forest

  • 构造树模型:由于二重随机性,使得每次树基本上都不会一样,最终的结果也会有区别
    在这里插入图片描述
  • 树模型:每个树模型中我们都进行随机选取输入,是保证泛化能力,如果每棵树都一样就没有实际意义了。
  • 模型优势:
    1、它能处理很高纬度的数据,并且不用做特征选择(也可以做)
    2、在训练完后,它能够给出重要性较高的feature
    3、容易做成并行化方法,速度比较快
    4、可以进行可视化操作(但是当树过于庞大时不建议)
  • 拓展部分(随机森林如何判断feature重要性)
    现有 A A A B B B C C C D D D这4个特征这时候我们做随机森林的模型: A + B + C + D → E 1 A+B+C+D\rightarrow E_1 A+B+C+DE1
    当我们需要判断 A A A特征的重要性时,我们可以将 A A A中的数据用噪音数据代替掉,我们用 A ′ A' A表示,在应用模型 A ′ + B + C + D → E 2 A'+B+C+D\rightarrow E_2 A+B+C+DE2
    此时我们就得到了对于特征 A A A的两个结果值,如果这两个结果值得偏差很小,那我们认为 A A A对回归的作用是微乎其微的;反之, A A A有具体的作用。

KKN

该方法不太适合,使用这种方法很难去随机让模型的泛化能力变强。(具体介绍之后补充)

Boosting模型

该模型典型代表有Adaboost,Xgboost后者在以后哦的数据分析中具体说明。

Adaboost

Adaboost会根据前一次的分类效果调整数据的权重

  • 具体实现方式:如果一个数据在这次分错了,那么在下一次我就会给它更大的权重
  • 最终结果:每个分类器根据自身的准确性来确定各种的权重,再结合
  • 实例:
01234
0.20.20.20.20.2

开始我们给这些数据的权重是相同的,当进行预测后:

01234
0.20.20.20.20.2
×

发现 1 数据出错了,此时我们再调成权重:

01234
0.10.60.10.10.1

大致上是这样一个思想。然后每个分类器都会有优劣,好的分类器权重越大,差的越小。

Stacking模型

  • 堆叠思想:简单粗暴,直接用很多个回归模型套数据,分类器可以多种多样(KNN,SVM,RF等等)
  • 分阶段:第一阶段每个模型得出各自的结果,第二阶段将用前一阶段结果进行训练得出模型。
    大致思想:
  • 第一阶段:单独预测
model1234
RF1010
LR1010
SVM1100
Xgboost0010

第二阶段:结果训练
( 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 0 ) → L R ( 1 0 1 0 ) (2) \left( \begin{matrix} 1 & 0 & 1& 0 \\ 1 & 0 & 1& 0 \\ 1 & 1 & 0& 0 \\ 0 & 0 & 1& 0 \end{matrix} \right ) \tag{2} \xrightarrow{LR} \left( \begin{matrix} 1 & 0 & 1& 0 \end{matrix} \right ) 1110001011010000LR (1010)(2)

小结

如果数据分析时没有太好的方法做回归,推荐先使用随机森林看看效果。此外,集成算法看着比较全面,适合数学建模使用。具体的实现方式,在titanic分析中展示。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值