大话系列 | 两种集成方法
全文共1297字,阅读全文需7分钟
写在前面的话
大家好,我是小一
这是大话系列的第5节内容,也是本系列的第12篇原创文章。
本来这节也是准备开始新的算法,但是考虑到有一些概念可能需要提前说清楚,于是就有了这个小节内容。
前面已经介绍了4个分类算法,每个分类算法都或多或少的适用于不同的场景,但是单一的算法很多时候预测效果并不佳,所以就需要我们对算法进行集成。
“三个臭皮匠顶一个诸葛亮”,差不多就是集成的意思。当我们将每个人的长处集合起来,全部揉进一个人的身体里,就会形成一个超级赛亚人。
但是我们应该怎么选择每个人的长处?又怎么去融合他们的长处?一起往下看
关于集成方法
集成方法(ensemble method)通过组合多个学习器来完成学习任务。通过集成方法,可以将多个弱可学习器组合成一个强可学习分类器,因此集成学习的泛化能力一般比单一的基分类器要好
集成方法主要包括Bagging和Boosting,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个更加强大的分类
更准确的说这是一种分类算法的组装方法,即将弱分类器组装成强分类器的方法。
1. Bagging
Bagging法也称为投票法,有放回地对训练集进行采样,bagging法的主要流程是:
从原始样本集中抽取训练集。
每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(此时的k个训练集之间是相互独立的)
每次使用一个训练集得到一个模型,k个训练集共得到k个模型。
注:这里可以根据具体问题采用不同的分类或回归方法,如决策树、感知机等
将k个模型采用投票的方式得到分类结果。
需要注意的是,在分类问题中,需要将k个模型采用投票的方式得到分类结果;对于回归问题,则直接计算k个模型的均值作为最后的结果,如图所示:
注意看图!
多说一嘴,投票的方式就是少数服从多数的方式
2. Boosting
Boosting(再学习法)的思路则是采用重赋权法迭代地训练基分类器,主要流程是:
所有样本赋予初始权重 迭代训练,并在上一次训练的基础上进行改进提升,增大分类错误样本的权重 迭代后的最终的模型就是目标分类模型
再学习法其实就是在上一轮的基础上再次进行训练,直到满足终止条件,如图所示:
3. Bagging、Boosting二者之间的区别
样本选择上
Bagging:训练集是从原始集中有放回的选取,从原始集中选出的各轮训练集之间是独立的 Boosting:每一轮的训练集不变,只是训练集中每个样本在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整
样例权重
Bagging:使用均匀取样,每个样本的权重相等 Boosting:根据错误率不断调整样本的权值,错误率越大则权重越大
预测函数
Bagging:所有预测函数的权重相等 Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重
并行计算
Bagging:各个预测函数可以并行生成 Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果
4. 集成算法总结
两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果
将不同的分类算法套入到算法框架中一定程度会提高了分类效果,但是也增大了计算量
常见的决策树结合算法:
Bagging + 决策树 = 随机森林 Adaboost + 决策树 = 提升树 Gradient Boosting + 决策树 = GBDT