AdaBoost算法是一种基于迭代的分类算法。在说AdaBoost之前,我们应该先了解Boost算法。
Boost字面意思有增长之意,事实也是如此,Boost算法的核心是多个弱分类器“增长”为一个强分类器。简而言之,Boost算法就是先训练较为简单的弱分类器,弱分类器可以理解为一种逻辑简单的分类器,它的训练和实现较为容易,然后再将他们“组合”成一个强分类器。而采用不同的损失函数,就有着不同类型的Boost算法,AdaBoost就是其中的一种。
AdaBoost算法具体实现:
1)给数据集中的每一个样本赋予一个初始权重(根据具体情况决定如何分配)。并确定弱分类器(m是迭代次数),对每
一个样本进行类型判断。
2)确定弱分类器(m是迭代次数),对每一个样本进行类型判断。计算误差率,N指的是样本数
量,m是迭代次数,是弱分类器判断结果
3)计算弱分类器权重,根据求得该次权重改变,,其中
为归一化因子,使样本的概率分布和为1,为特征,为标签。
4)更新权重,若误差率达到0或者达到迭代次数m则结束,否则返回第二步。
最后的分类器结果为,m为迭代次数,x为特征向量,(每次迭代都会计算一次)。