【机器学习】集成算法与随机森林

集成算法与随机森林
目的:让机器学习效果更好,一个人决策树效果不够,那就一群树。

Bagging

训练多个分类器取均值,进行并行训练

f ( x ) = 1 m k = 1 m f k ( x ) f(x)= \frac{1}{m}\sum_{k=1}^mf_k(x)
全称:Bootstrap aggregation(并行训练一堆分类器(树))

最典型代表:随机森林

随机:数据采样随机,特征选择随机。
森林:很多个决策树并行放在一起,同时处理。
在这里插入图片描述

同一个数据集构造3个树
数据随机:选60%数据,有放回的。ABC都如此(随机选择)
特征随机:选60%特征,有放回的。ABC都如此(特征随机)

由于数据特征的二重随机性,使得每个树基本都不太一样,结果也不相同。之所以要进行随机,是多重树不同的切割结果,能够保证一定的泛化能力。
在这里插入图片描述

随机森林优势

1.能够处理很高维(很多特征)的数据,并且无需进行特征选择;
2.训练结束后,能够告知我们哪个特征更重要;
3.容易做成并行方法,速度较快;
4.可进行可视化演示,易于分析。

Q:如何做到分析哪个特征更重要?

如果错误率1约等于错误率2,说明B不太重要
如果错误率2远大于错误率1,说明B很重要

Boosting模型(串行训练)

从弱学习器(基本学习器)开始加强,通过加权来进行训练。
公式:

argmin…:当前得数,弥补残差
eg:实际贷款1000,A学习器预测950,残差50,B会去弥补残差(+30),C去弥补A,B的残差(+18)变为998,不断增强效果

典型代表:AdaBoost,Xgboost
AdaBoost会根据前一次的分类效果来调整数据权重。
解释:如果某一个数据这次分错了,那下一次就会给它更大的权重。
最终结果:每个分类器根据自身准确性来确定各自权重,在进行合体。
Q:怎么分配权重的?

stacking模型

聚合多个分类或者回归模型(可以分阶段的来完成)
特点
1.堆叠:很暴力,各种分类器直接就上;
2.可堆叠各类型分类器:KNN,SVM,RF(RANDOM FOREST),LR(LOGICAL REGRESSION),Xgboost,DT(Decision Tree);
3.分阶段:一阶段各自得出结果,二阶段用一阶段的结果进行训练;
4.为刷结果不择手段。
在这里插入图片描述

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

小结

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

发布了157 篇原创文章 · 获赞 94 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_42462804/article/details/100095666
今日推荐