组合算法简介

1:首先介绍是属于哪一类算法

组合算法即通过改变训练集来构造不同的学习器,然后再把它们集成起来。组合算法的核心思想是“三个臭皮匠,胜过诸葛亮”,直接建立一个高性能的分类器是很困难的,但是,如果能找到一系列性能较差的的弱分类器,并把它们集成起来的话,也许就能得到更好的分类器
本文介绍装袋法(Bagging)和提升算法(Boosting)

2:介绍是否是有监督学习

装袋,提升算法都是分类算法,是有监督学习。监督学习就是从标记的训练数据来推断一个功能的机器学习任务。也就是利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,聚类和分类最大的不同在于分类的目标事先已知,而聚类则不知道

3:组合算法的应用场景

组合算法一般应用在将多个弱分类器合并形成一个性能更加强的分类器的场景

4:首先介绍自助法

Bagging和Boosting都是将已有的分类或回归算法通过一定的方式组合起来形成一个更加强大的分类器,在组合过程中,都会借助一种自助抽样的方法Bootstrapping,即自助法,它是一种有放回的抽样方法,多次抽取样本集时,可能会抽到重复的样本,我们假定数据集中样本有D个,那么每次有放回抽样D次,产生D个自主样本或训练集,原始数据元组中的某些元组可能在训练集中出现了很多次,有些可能一次都没有出现过,没有进入该训练集的样本都变为检验集

5:再介绍Bagging,装袋法

首先直观的考察装袋如何作为一种提高准确率的一种方法。

假设你是一个病人,希望根据你的症状做出诊断,你可能选择看多个医生,而不是一个,如果某种诊断比其他诊断出现的次数多,则你可能将它作为最终或最好的诊断,也就是说,最终诊断是根据多数表决做出的,其中每个医生都具有相同的投票权重,现在,将医生换为分类器,你就可以得到装袋的基本思想,直观来说,更多医生的多数表决比少数医生的多数表决更可靠。

装袋过程如下:从原始样本集中抽取训练集,每轮从原始样本集中使用BotStrapping的方法抽取n个训练样本,共进行K轮抽取,得到K个训练集,K个训练集之间是相互独立的
每次使用训练集得到一个模型,K个训练集可以得到K个模型
对未知元组分类时,对于分类问题,将上述得到的k个模型采用投票的方式得到分类结果,对于回归问题,计算上述模型的均值作为最后的结果,所有模型的权值相同

6:再介绍Boosting,提升法

现在考察组合分类方法提升,与上述例子一样,假设你是一位患者,有某些症状,你选择咨询多位医生,而不是一位,假设你根据医生先前的诊断准确率,对每位医生的诊断赋予一个权重,然后,这些加权诊断的组合作为最终的诊断,这就是提升的基本思想。
提升法Adaboost过程如下:
对于给定的数据集D,包含d个类标记的元组,开始,对每个训练元组赋予相等的权重1/d,根据元组的权重,从D中元组抽样,形成大小为d的训练集Di,使用有放回抽样,同一元组可能被选中多次,每个元组被选中的机会由它的权重决定,从训练集Di导出分类器Mi,然后使用D作为检验集计算Mi的误差,如果该分类器Mi的性能太差,错误率超过0.5,则丢弃它,并重新产生新的训练集Di,由它导出新的Mi,如果分类器Mi的错误率可以接受,则将数据集D中每个被正确分类的元组的权重根据Mi的错误率更新,误分类元组的权重增加,而正确分类元组的权重减少。
一旦提升完成,使用分类器的组合预测元组X的类标号,不像装袋将相同的表决赋予每个分类器,根据提升分类器的分类情况,对每个分类的表决赋予一个权重,分类器的错误率越低,它的准确率就越高,因此它的表决权重就应当越高。

7:Bagging和Boosting二者之间的区别:

第一是样本的权重:
Bagging中所有样本的权重都是相同的,所有样本被抽取出的几率都是相同的
Boosting中初始样本权重是一样的,之后每轮根据错误率不断调整样本的权重,错误率越大则权重越大

第二是分类器的权重:
Bagging分类器预测时所有分类器投票权重都是相同的,票数多的类为最终的分类结果
Boosting中每个弱分类器都有相应的权重,进行预测时,对于分类误差较小的分类器会有更大的权重

8:算法的优缺点

提升法由于更关注误分类的元组,所以存在结果复合模型对数据过分拟合的危险,装袋不太受过分拟合的危险,尽管与单个模型相比,两者都能够显著提高准确率,但是提升往往得到更高的准确率。

你可能感兴趣的:(组合算法简介)