1、Adaboost算法原理及简单实现,目录,背景简介,Bagging 和Boosting都是分类器的集成技术,Bagging 出现在Boosting之前。这种算法都比较简单,只是将分类器进行简单的组合,实际上,并没有发挥出分类器组合的威力来。之后在1990年,Schapire提出了Boosting算法,次年Freund改进Boosting算法,这两种算法存在共同的实践上的缺陷, 那就是都要求事先知道弱学习算法学习正确率的下限。 1995 年,Freund和Schapire共同改进了Boosting算法,提出了AdaBoost( Adaptive Boosting) 算法,该算法效率和Freund
2、于1991年提出的Boosting算法几乎相同, 但不需要任何关于弱学习器的先验知识, 因而更容易应用到实际问题当中。,Adaboost原理简介,Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来作为最后的决策分类器。,Adaboost原理简介,AdaBoost.M1 Dis
3、crete AdaBoost: 训练过程 1.初始化:初始赋予每个样本相等的权重 ; 基分类器个数L; 2. For k = 1, 2, , L Do 根据分布 从训练数据集中抽取样本 ; 将 用作训练数据集建立一个分类器 ; 计算该分类器的加权训练误差 ; 若 则令 = ,重新训练分类器 ; 否则,计算 ; 继而更新训练集上的权重分布 结束循环 训练过程 3.给定测试数据,采用加权融合方式计算每一类 的支持度 4.预测此测试数据的类标签为支持度最大的类。,实验,数据集:LISSAJOUS FIGURE DATA (p42) 训练数据个数:700 测试数据个数:300 基分类器:决策树(p95
4、-99),实验,数据集:LISSAJOUS FIGURE DATA (p42) 训练数据个数:700 测试数据个数:300 基分类器:决策树(p95-99) 基分类器个数为1及20时分类结果,实验,数据集:LISSAJOUS FIGURE DATA (p42) 训练数据个数:700 测试数据个数:300 基分类器:决策树(p95-99) 分类误差随基分类器个数变化图 test_error = Columns 1 through 15 0.1037 0.1070 0.1271 0.0836 0.1003 0.0970 0.0936 0.1037 0.0903 0.0870 0.0903 0.0836 0.0870 0.0970 0.0903 Columns 16 through 20 0.0903 0.0936 0.1003 0.0870 0.0903,