Adaboost
Adaboost算法是将弱分类器线性叠加为一个强分类器,具体的算法步骤如下:
1. 读取数据集X(X1…Xn)以及其标签Y
2. 初始化样本的权值w=1/n,设定弱分类器个数T
3. for i=1…T
对每一个特征训练一个弱分类器,将误差最小的压入弱分类器中;
计算权重误差函数
e=∑i=1nwiI(h(xi)≠yi)
计算分类器权重
α=0.5ln(1−ee)
更新样本权值
w=wsum(w)×{e−αh(xi)=yieαh(xi)≠yi
4. 预测结果: H(x)=sign(∑i=1Tαihi(x))
参照这个地方的代码写的,谢谢作者,写的很清楚c++源码
Adaboost优点:
低泛化误差,分类准确率高,不用担心过拟合。
缺点:
对离群点比较敏感。