1,AdaBoost算法的基础,公式推导,以及代码实现
https://louisscorpio.github.io/2017/11/28/AdaBoost%E5%85%A5%E9%97%A8%E8%AF%A6%E8%A7%A3/#
2, 划重点!!!!!
重点:为什么要提高错误样本的个数来降低错误率呢?
adaboost之所以每次训练后,将分类器错误的权值加大,是因为如果加大后,下一次计算的错误率就会加大,这样,在我们最后一步分类器的整合的时候,它整合原理就是加大误差率小的权重,减少误差率大的权重,这样误差率大的在整体的分类器中占得比率就下降了,整体的误差就下降了。
具体点:
1.错误率x=未正确分类的样本/所有样本;
2.使用权重系数alpha计算公式:a=1/2log(1-e/e),其中e就是错误的样本, 这个函数式递减函数,即e越大a越小,
3.整合公式:H(x)=sign(sum(a * h(x)));(可以查一下公式)
所以在最后一次的分类器的整合的时候,对应的错误的分类器所占得比率就会降低,而整体的错误率就会降低。adaboost的原理就是基于boosting 之上将多个弱分类器整合一起成为强分类器,其实多个弱学习器通过组合也可以成为强学习器。
这里提高错误点的权值,当下一次分类器再次分错了这些点之后,会提高整体的错误率,这样就导致 a 变的很小,最终导致这个分类器在整个混合分类器的权值变低。
也就是说,这个算法让优秀的分类器占整体的权值更高,而错误率高的分类器权值更低。整体的错误率就高了。
参考:https://blog.csdn.net/Baron_ND/article/details/82250572