1.介绍
垂直于X轴或Y轴的直线成功地将蓝点与黄点分开。无论如何选取直线,这种分类都无法达到100%的准确率。感知器提出的时候,为我们提供了线性问题的解决方案,但是面对异或问题的时候,感知器就无能为力了。后来引入了激活函数,解决了异或问题,给感知器注入了活力。回到正题,当一条直线不能正确划分这一类的时候,我们该怎么办?介绍一下功能好吗?
2 .装袋方法
装袋培训流程:
在训练数据个数为X的数据集中,随机选取M个样本集(基本分类器C训练完后把这些样本放回去)。通过训练随机选取的M个样本集,形成误差较小的基本分类器C1。基本分类器C1被赋予权重W1。回到步骤1,重新选择M个样本,最后将每个分类器按照一定的权重进行线性叠加,形成由基本分类器组成的强分类器Bagging。
A.对于每个分类器,输入数据都是来自原始训练数据的可重复样本,每个分类器的输入服从相同的分布,并且相互独立。在Boost中,训练数据的分布不是独立的,每个分类器的输入样本也不是独立的。
b、每个分类器可以采用不同超参数的相同算法;也可以使用不同算法;
C.每个分类器的输出没有权重,是相等的。
它的特点是“随机抽样”。那么什么是随机抽样呢?
随机抽样(bootsrap)是从我们的训练集中收集固定数量的样本,但是在每个样本被收集后,样本又被放回去。也就是说,之前采集的样本,放回去之后可能还会继续采集。对于我们的Bagging算法,我们通常随机收集与训练集m的样本数一样多的样本,这个样本集和训练集的样本数相同,但样本内容不同。如果我们用m个样本对训练集随机采样t次,由于随机性,t个采样集是不同的。
此外,装袋有多种不同的方法来分配重量:
简单的投票方式就是相对多数投票方式,也就是我们常说的少数服从多数,稍微复杂一点的投票方式就是绝对多数投票方式,也就是我们常说的需要多数票。在相对多数投票法的基础上,不仅要最高票,还要过半票。否则,预测将被拒绝。更复杂的是加权投票法。和加权平均法一样,将每个弱学习者的分类投票乘以一个权重,最后将每个类别的加权投票相加,取最大值对应的类别为最终类别。前两种方法是对弱学习者的成绩进行平均或投票,相对简单,但可能学习误差较大,于是有了学习法。
对于学习方法,代表性的方法是堆砌。在使用堆叠的组合策略时,不是简单地对弱学习者的结果进行逻辑处理,而是增加一层学习者。也就是说,我们把训练集中弱学习者的学习结果作为输入,把训练集的输出作为输出,重新训练一个学习者,得到最终的结果。
装袋的缺点:
很有可能每采样M个样本就会得到与前一个样本相同的数据,导致分类器效果线性组合后形成的强分类器性能不佳。在《机器学习》这本书里也提到,如果进行随机抽样,有36.8%的样本不会被抽样,所以训练集带来的训练误差是难以避免的。
3.增压方法
Boosting方法是一种常用的统计学习方法,应用广泛且有效。在分类问题中,它改变训练样本的权重,学习多个分类器,并线性组合这些分类器以提高分类性能。提升方法的思想和代表性的提升算法Adaboost,它是由Freund和Schapire在1995年提出的。
集成学习(Ensemble learning)是一种机器学习方法,它利用一系列的学习者进行学习,用一定的规则对学习结果进行集成,从而获得比单个学习者更好的学习效果。一般来说,综合学习中的多个学习者是同质的“弱学习者”。
基础学习算法(齐次集成):如“决策树集成”、“神经网络集成”(对应的个体学习器称为基础学习器)。
异构集成:包括不同类型的个体学习者3354和决策树、神经网络等不同的学习方法。
在概率近似正确学习的框架下,如果有一个多项式学习算法可以学习它,并且正确率很高,那么称这个概念是强可学习的;
如果有一个多项式学习算法可以学习它,并且学习的正确率只比随机猜测略高,那么这个概念就叫做弱可学习。
有趣的是,Schapire后来证明了强可学性和弱可学性是等价的。在学习中,如果发现了一个“弱学习算法”,是否可以提升为“强学习算法”?
众所周知,找到弱学习算法通常比强学习算法容易得多。所以如何实施推广就成为开发推广方法时要解决的问题。
在二
成的过程种很可能会发生以下三种情况:集成效果尚佳,分类效果提升集成效果不明显,分类效果无提升集成效果差,分类效果下降
4.Adaboost提升思路
这样,对提升方法来说,有两个问题需要回答:
1.在每一轮如何改变训练数据的权值或概率分布;
2.如何将弱分类器组合成一个强分类器.
Adaboost算法的核心思想就是由分类效果较差的弱分类器逐步的强化成一个分类效果较好的强分类器。
而强化的过程,就是如下图所示,逐步的改变样本权重,样本权重的高低,代表其在分类器训练过程中的重要程度。而分类器在训练的过程中会更加看重这些样本,进行“特殊照顾”
所谓“三个臭皮匠,顶个诸葛亮”正是这个道理,可以看到在每一次分类的过程中,被分类错误的点的面积(即权重)在上升,分类正确的点的面积(即权重)在下降,能够更好的使得分类器注意到这些点。
不过有几个具体的问题Boosting算法没有详细说明
1. 如何计算学习误差率e
2. 如何得到弱学习器权重系数 α
3. 如何更新样本权重D
4. 使用何种结合策略
这是Adaboost整个的算法流程,公式看起来枯燥无味,不如举个例子看看。
训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)},其中x表示输入样本,y∈{+1,1}为对应的标签。
输出:最终分类器G(x)
(a)在权值分布为D1的训练数据上,阈值ν取2.5时分类误差率最低,故基本分类器为
(b)G(x)在训练数据集上的误差率
(c)计算G(x)的系数
(d)更新训练数据的权值分布
原先权值(表1):
现在更新后的权值(表2)
可以注意到被分类错误的点的权值是上升了,这是因为在公式中
当判断一致的时候,指数函数的指数是负数,exp(-α)<1,
当判断不一致的时候,指数函数的指数是正数,exp(α)>1
根据表2的权值,我们应该着重关注x=6,7,8这三个点。
现在更新后的权值(表3)
可以看到,由于第二个分类器的在x=3,4,5上分类预测错误,相对应的权值都会上升。基本分类器2的权值为什么会比基本分类器1的权值高呢?那是因为基本分类器2的预测误差率比1的小,基本分类器1的误差率为0.1+0.1+0.1=0.3,而基本分类器2的误差率为0.0715+0.0715+0.0715=0.2143,当误差率降低的时候,分类器的权重会上升,代表着这个分类器进行“投票”的时候比重是比1大的。同理构造分类器3。
总结:权值变化表(红色标注的为该分类器分类错误的权值变化)
注意:需要注意的是,boosting 算法在训练的每一轮都需要检查当前生成的基学习器是否满足基本条件,一旦条件不满足则基学习器被抛弃。初始设置的学习轮数T也许未达到,可能导致最终集成的学习器性能不佳
5.总结:
6.案例:利用Adaboost从疝气病症预测病马的死亡率
从上述结果中可以看出,当弱分类器数目达到50个的时候,训练集和测试集的预测准确率均达到了一个比较高的值,但是如果继续増增加弱分类器数量的话,测试集的准确率反而开始下降了,这就是所谓的过拟合(overfitting)