数据挖掘中有十大经典算法(C4.5,CART,PageRank,Apriori,K-Means,kNN,Naive Bayes,Adaboost,EM,SVM),而其中的Adaboost算法尤为出名,因为它极少出现过拟合现象,而且训练非常简单,速度快。(当然,SVM更出名,效果更好,所以SVM一直统治江湖,直到近年来,深度学习的发展,这种格局才被打破)。
之前也看过一些网友(学者)的博客(文章),却总是云里雾雨,理解不深。上次参加周志华教授做的精彩报告《AdaBoost到LDM》后,就想深入地学习一下该算法。
希望多挤时间,把EM,SVM等一些经典的算法(尤其是可视化过程)纪录下来,激励自己。
初次在CSDN上写东西。如有错误,欢迎指正;如感兴趣,欢迎留言。
原理
可视化
训练过程
具体细节
第 1 次迭代
注:第一幅图,表示权重之和;
第二幅图也就是H(x),
正样本落入红色区域表示正确分类,落入蓝色区域表示错误分类,
负样本落入蓝色区域表示正确分类,落入红色区域表示错误分类,
第三幅图:分类结果。
第 2 次迭代
第 3次迭代
第 19次迭代
第 20 次迭代
第 21 次迭代
测试结果
小总结
通过多个(线性)弱分类器的集成,组成强分类器,然后对非线性问题进行分类。
参考文献
1.Schapire, R.E.: Explaining AdaBoost.
2.Schapire, R.E., Freund, Y.: Boosting: Foundations and Algorithms. MIT Press (2012).