adaBoost算法
2015-08-21 12:02
176 查看
二、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、 最终得到的决策函数
相关文章推荐
- IOS UIPageControl(分页控制器) 用法总结
- Android设置透明效果
- nginx限制用户下载文件速率
- mvc项目中发送邮件
- linux查找关键字在php出现的次数
- SpringMVC 使用poi导入导出Excel
- 文档如何进行双面打印
- HTML5游戏 围住神经猫 开发
- xjc命令转换成java类乱码
- 数据库防火墙技术研究
- 带checkbox的ListView实现(二)——自定义Checkable控件的实现方法
- 求一个数组中只出现一次的数字
- 逆向初体验之玩“英语趣配音”
- cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)
- TreeMap与HashMap的差异
- Android常用UI组件属性和.9图制作
- C#随机数管理,最大值、最小值可以自己进行设定。
- 8个与php相关的函数
- 【模拟】【CQOI 2007】【bzoj 1258】三角形tri
- AES加密