adaboost弱分类器与强分类器的训练过程(偏理论)

adaboost弱分类器与强分类器的训练过程(偏理论)

具体步骤如下:
1.初始化样本权重D1=1/(n+m)
2.对每个特征f(20*20中有78460个特征),计算所有样本(正样本n个,负样本m个)的特征值。
3.将每个特征对应的m+n个特征值进行排序。
4.对排好的每一个特征值所对应的样本:
(1)计算全部正例的权重和T+
(2)计算全部负例的权重和T-
(3)计算该样本前正例的权重和S+
(4)计算该样本负正例的权重和S-
5.选取当前样本的特征值Fki和它前一个样本的特征值Fki-1之间的数作为阈值,该阈值所对应的分类误差为:
在这里插入图片描述
6.选出每个特征f所有对应的(n+m-1)阈值中,对应分类误差最小的为最佳阈值,即为该特征f所对应的分类器的阈值。
7.对比所有分类器的分类误差找出此次迭代的最佳的弱分类器Gm,计算此弱分类器的权重
在这里插入图片描述
公式意味着分类误差率越小的弱分类器在强分类器中的权重越高,作用越大。
8.更新样本权重:
在这里插入图片描述
在这里插入图片描述
实现了将本次分类正确的样本权值减小,本次分类错误的样本权值增大,这样在下次训练弱分类器里更多的聚焦于本次被分错的样本。
9.将该弱分类器以如下公式的方式加入到当前强分类器中
在这里插入图片描述
10.确定强分类器的阈值threshold:遍历所有正样本,用当前强分类器中已经训练出来的弱分类器来计算每个正样本的置信度,累加得到置信度累加和,将这些每个样本的置信度累加和排序,根据minhitrate来计算当前强分类器的阈值threshold。
threshold = eval.data.fl[(int) ((1.0F - minhitrate) * numpos)]
确定强分类器的虚警率falsealarm:再遍历所有负样本,用当前强分类器中已经训练出来的弱分类器来计算每个负样本的置信度累加和,再用前面计算得到的threshold来判断每个负样本的类别,统计负样本的分类总数,得到负样本的误检率falsealarm,如果误检率小于输入的参数maxfalsealarm,则跳出迭代循环,当前强分类器训练完成。
falsealarm = ((float) numfalse) / ((float) numneg)
否则重复2-10。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值