Adaboost算法实现二

来源:互联网 发布:应用商城软件下载 编辑:程序博客网 时间:2024/06/05 03:13

           终于把这个Adaboost算法的源码看完了,基本了解了算法。对于一些地方还是存在疑问,不知道为啥要这样处理,如相似性度量。

          测试了好几个例子,感觉Adaboost对样本分类的效果还不错,但是对于预测,正确率也就70%-80%,不是很高,感觉应该是比较低的了,应该有改进的措施,还没来得及看。

          用主程序中的一段代码对adaboost算法做下自己的总结。

 

for i=1:weak_learner_nadaboost_model = ADABOOST_tr(tr_set,tr_labels,i);[L_tr,hits_tr] = ADABOOST_te(adaboost_model,tr_set,tr_labels);tr_error(i) = (tr_n-hits_tr)/tr_n;%训练样本错误率[L_te,hits_te] = ADABOOST_te(adaboost_model,te_set,te_labels);te_error(i) = (te_n-hits_te)/te_n;%测试样本错误率end


        Adaboost主要是通过改变权重不断训练弱分类器,最后得到一个强分类器。随着迭代次数的增多,弱分类器也在增加,分类效果也就越好。

       本实例中设置weak_learner_n为20,也就是迭代到最后,有20个弱分类器组成。对20次循环来说,每次循环产生的弱分类器数量不同,逐步递增,分类效果也越来越好,,这可以通过tr_error(i)的结果来进行分析,te_error(i),是相应的各个弱分类器组的预测能力。

      ADABOOST_tr %函数功能:用来生成加权的弱分类器组合

      ADABOOST_te%测试函数,主要是对前面训练的弱分类器组进行误差检测,返回的hits值就是正确分类的个数