AdaBoosng
简要介绍
核心思想在于:
是一种投票算法,使用多个弱分类器相结合达到强分类的效果(三个臭皮匠顶个诸葛
亮),常用的弱分类器是单层决策树。使用迭代的方式逐步对分类错误的数据进行优化分
类处理。
流程:
数据组成为: ar1,ar2,ar3....Label,即属性与标签
1. 求最优分类器(最小错误率)
a)For(ari a in arlist){
StepSize=Range(ari)/Step;=(maxValue-minValue)/Step (确定要分多少步,以及步长多少,
这是对数值型的操作,那么对类别呢?如果是二值型的类别是好做的,多值且相互独立就
不好做了)
b)For(int i=0;i<Step;i++){
//一个一个边界的遍历
c)for 使用 lt 或者 gt 去对当前边界(minvalue+i*StepSize)做分类,记录分类加权错
误率;对比最小错误率 minerror 并更新
}
}
错误率是指:error=错误数据条数/数据总数
加权错误率是: 对于每条数据都有一个权重的,这个权重在第一次迭代的时候是相等的。有
m 条数据的情况下,比方说每条数据的权重是 1/m 。下次迭代的时候更新权重。
使用三个 for 循环,对从每个属性中取出最好的边界用最适合的表达式(lt,gt)去分类,求
出最小错误率的分类器。
2. 迭代过程
迭代的过程很有意思,迭代过程降低了上一步已分类正确的数据的比重,提高了分类错误
数据的比重。而在计算错误率时是使用的加权错误率,因此也就是说本次迭代相较于上一
次迭代是在强化错误数据的分类效果(很好理解,不同属性 ar 对于可以对数据的分类侧
重点不同)。
评论0