集成学习记录(Boosting和Bagging)
Posted xunyingfree
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成学习记录(Boosting和Bagging)相关的知识,希望对你有一定的参考价值。
集成学习:
集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高。
目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost、GBDT、XGBOOST、后者的代表算法主要是随机森林。
集成学习主要思想:
集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测。核心思想就是如何训练处多个弱分类器以及如何将这些弱分类器进行组合。
弱分类器选择:
一般采用弱分类器的原因在于将误差进行均衡,因为一旦某个分类器太强了就会造成后面的结果受其影响太大,严重的会导致后面的分类器无法进行分类。常用的弱分类器可以采用误差率小于0.5的,比如说逻辑回归、SVM、神经网络。
多个分类器生成:
可以采用随机选取数据进行分类器的训练,也可以采用不断的调整错误分类的训练数据的权重生成新的分类器。
多个弱分类区组合:
基本分类器之间的整合方式,一般有简单多数投票、权重投票,贝叶斯投票,基于D-S证据理论的整合,基于不同的特征子集的整合。
Boosting:
概念:Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分类算法放于Boosting 框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本集上产生一个基分类器,这样在给定训练轮数 n 后,就可产生 n 个基分类器,然后Boosting框架算法将这 n个基分类器进行加权融合,产生一个最后的结果分类器,在这 n个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识别率,这样便提高了该弱分类算法的识别率。在产生单个的基分类器时可用相同的分类算法,也可用不同的分类算法,这些算法一般是不稳定的弱分类算法,如神经网络(BP) ,决策树(C4.5)等。
Adaboost:是boosting中较为代表的算法,基本思想是通过训练数据的分布构造一个分类器,然后通过误差率求出这个弱分类器的权重,通过更新训练数据的分布,迭代进行,直到达到迭代次数或者损失函数小于某一阈值。
Adaboost中涉及到一些可以进行调整的参数和计算公式的选择主要有:1)弱分类器如何选择 ;2)如何更好的实验误差率计算分类器的系数 ;3)如何更好的计算训练数据的权重的分布;
4)弱分类器如何进行组合 ;5)迭代次数 ;6)损失函数的阈值选取多少
Bagging算法:
bagging方法bootstrap aggregating的缩写,采用的是随机有放回的选择训练数据然后构造分类器,最后组合。
每个分类器经历两次随机:1)随机选特征;2)随机选数据。
以上是关于集成学习记录(Boosting和Bagging)的主要内容,如果未能解决你的问题,请参考以下文章
集成学习算法总结----Boosting和Bagging(转)