按照上一篇博客中搭建好环境后,我们正式进入ML算法的学习。首先看第一个adaboost。
本文包含以下几个方面的内容:
- adaboost算法的基础知识
- python3的实现过程
- 实现过程中学习到的python3技巧
adaboost算法的基本知识
adaboost的源头在《A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting》这篇论文里,是1996年的工作,关于这篇论文的解读笔记,会在接下来的几天里整理好,写成博客。这里引用一下其他人的解读点击打开链接、还有这个,做一个快速的入门。
(1)补充一下大家看点击打开链接的一些先验知识:
分类器:二分类,标签+1;-1
误差计算方法:
,y是标签如【-1,-1,+1】,G(x)是分类器计算结果如【+1,-1,+1】,错的越多指数越大,loss越大
样本权重*当前弱分类器的分类误差==强分类器的分类误差
最后算出来的分类器权重,是以loss最小为目标的。
这一步的推导中,下面的那个公式中F的下标应该是m-2
(2)粘贴博客中关于adaboost中比较重要的一些概念,详细内容大家还是看博客原文:
- Adaboost算法基本原理就是将多个弱分类器(弱分类器一般选用单层决策树)进行合理的结合,使其成为一个强分类器。
- Adaboost采用迭代的思想,每次迭代只训练一个弱分类器,训练好的弱分类器将参与下一次迭代的使用。也就是说,在第N次迭代中,一共就有N个弱分类器,其中N-1个是以前训练好的,其各种参数都不再改变,本次训练第N个分类器。其中弱分类器的关系是第N个弱分类器更可能分对前N-1个弱分类器没分对的数据,最终