码迷,mamicode.com
首页 > 编程语言 > 详细

集成算法

时间:2018-10-04 10:06:59      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:abc   训练   权重   准确率   直接   ati   速度   算法   分析   

Ensemble learning

集成算法

目的:让机器学习效果更好,单个不行,群殴走起

Bagging:并行

训练多个分类器取平均

技术分享图片

全称:bootstrap aggregation(说白了就是并行训练一堆分类器)

技术分享图片

最典型的代表就是随机森林啦

随机:数据采样随机,特征选择随机

森林:很多个决策树并行放在一起

 构造树模型:

技术分享图片

由于二重随机性,使得每个树基本上都不会一样,最终的结果也会不一样

KNN模型

技术分享图片技术分享图片

KNN就不太适合,因为很难去随机让泛化能力变强!

 

树模型:

技术分享图片技术分享图片

相当于不用决策树先计算特征大当家的方法,用所有结果去比较谁来做大当家。

之所以要进行随机,是要保证泛化能力,如果树都一样,那就没意义了!

 

随机森林优势

 

它能够处理很高维度(feature(特征)很多)的数据,并且不用做特征选择

在训练完后,它能够给出哪些feature比较重要

容易做成并行化方法,速度比较快

可以进行可视化展示,便于分析

技术分享图片

 如何比较特征的重要性

技术分享图片

例如确定B的重要性:

1,先用ABCD四个特征构造出的模型,计算错误率ERROR1

2,将B特征的数据改为无用值,也就是噪音值B‘。

3,用AB‘CD建立模型计算错误率ERROR2

比较ERROR1和ERROR2的值,如果差不多,就说明B不太重要,如果更改之后错误率比之前大许多的话,就说明B是很重要的。

 

 

 树模型:

 技术分享图片

理论上越多的树效果会越好,但实际上基本超过一定数量就差不多上下浮动了

 

 

 

 

Boosting:串行

从弱学习器开始加强,通过加权来进行训练

技术分享图片

(加入一棵树,要比原来强)

技术分享图片

 

 

典型代表:AdaBoost,Xgboost

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

解释:如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重

最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体

 技术分享图片

Adaboost工作流程

每一次切一刀!

最终合在一起

弱分类器这就升级了!

技术分享图片

 

 

 

 

Stacking模型

堆叠:很暴力,拿来一堆直接上(各种分类器都来了)

可以堆叠各种各样的分类器(KNN,SVM,RF等等)

分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练

为了刷结果,不择手段!

Stacking模型

技术分享图片技术分享图片技术分享图片技术分享图片

堆叠在一起确实能使得准确率提升,但是速度是个问题
集成算法是竞赛与论文神器,当我们更关注于结果时不妨来试试!

 

 

 

 

 

 

 

 

 

 

 

 

 

集成算法

标签:abc   训练   权重   准确率   直接   ati   速度   算法   分析   

原文地址:https://www.cnblogs.com/Mjerry/p/9740308.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!