二、Adaboost算法及分析
从图1.1中,我们可以看到adaboost的一个详细的算法过程。Adaboost是一种比较有特点的算法,可以总结如下:
1)每次迭代改变的是样本的分布,而不是重复采样(re weight)
2)样本分布的改变取决于样本是否被正确分类
总是分类正确的样本权值低
总是分类错误的样本权值高(通常是边界附近的样本)
3)最终的结果是弱分类器的加权组合
权值表示该弱分类器的性能
简单来说,Adaboost有很多优点:
1)adaboost是一种有很高精度的分类器
2)可以使用各种方法构建子分类器,adaboost算法提供的是框架
3)当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单
4)简单,不用做特征筛选
5)不用担心overfitting!
AdaBoost算法是由Freund等人在1995年提出,由Schapire等人在1999年提出改进。它是一种迭代算法,其核心思想是针对同一个训练集形成不同的分类器(弱分类器),然后把这个弱分类集合即成为一个强分类器。AdaBoost算法本身是通过改变数据分布来实现的,根据每次训练集中每个样本的分类结果的正确,以及通过上次分类结果给其赋予的权重来确定新一轮训练的样本分布。最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用AdaBoost算法可以排除一些次要的特征,在每次训练完成后可以着重关注被错分的样本,逐步提高分类准确率。具体的AdaBoost算法如下:
(1) 给定带有标签的训练样本集,弱分类器空间H,其中,y∈{-1,1}为类别标签,i=1,2,3,4,…n。n为样本个数。分类器空间所含分类器为T个。
(2) 初始化:训练集中的第i个样本的权重初始化为(i)=1/n,i=1,2,…n.
(3) 对以下操作循环T次:
1. 根据样本w生成样本子集,训练弱分类器空间中的每个分类器,选择使得错误率最小的分类器ht。
2. 设置选定的分类器的权重
3. 更新训练样本集分布:设置权重
4、 最终得到的决策函数
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9508.html