AdaBoost模型
AdaBoost模型
随机森林模型是Bagging算法的代表,AdaBoost与GBDT是Boosting算法的代表
1.算法原理
1.1 AdaBoost算法的核心思想
AdaBoost算法是一种有效而实用的Boosting算法,它以一种高度自适应的方式按顺序训练弱学习器。针对分类问题,AdaBoost算法根据前一次的分类效果调整数据的权重,在上一个弱学习器中分类错误的样本的权重会在下一个弱学习器中增加,分类正确的样本的权重则相应减少,并且在每一轮迭代时会向模型加入一个新的弱学习器。不断重复调整权重和训练弱学习器,直到误分类数低于预设值或迭代次数达到指定的最大值,最终得到一个强学习器。简单来说,AdaBoost算法核心是调整错误样本的权重,进而迭代升级。
预先设置 AdaBoost算法在误分类数位0(即误差率为0)时终止迭代,误差率等于分类错误的样本的权重之和,例如:有9个样本,每个样本的权重为 1 9 \frac{1}{9} 91 ,若有2个样本分类错误,那么此时的误差率为 2 9 \frac{2}{9} 92
1.2 AdaBoost算法的数学原理
输入训练集数据, T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯ , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),\cdots ,(x_N,y_N)\} T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中 x 为特征变量,y 为目标变量,其中 x i ∈ R n , y i ∈ { − 1 , + 1 } x_i\in R^n,y_i \in \{-1,+1\} xi∈Rn,yi∈{ −1,+1}
1.2.1 初始化各样本的权重(各权重相等)
w 1 i = 1 N ( i = 1 , 2 , ⋯ , N ) w_{1i}=\frac{1}{N} (i=1,2,\cdots, N) w1i=N1(i=1,2,⋯,N)
1.2.2 计算误差率
根据误差率 e m e_m em的计算公式,构造误差率最小的弱学习器 F m ( x ) F_m(x) Fm(x)
e m = ∑ i = 1 N w m i I ( F m ( x i ) ≠ y i ) e_m = \sum_{i=1}^{N}w_{mi}I(F_{m}(x_i)\neq y_i) em=i=1∑NwmiI(Fm(xi)=yi)
其中,误差率 e m e_m em是分类错误的样本的权重之和。其中 w m i w_{mi} wmi是样本 i 的权重; F m ( x i ) F_{m}(x_i) Fm(xi)是弱学习器 F m ( x ) F_{m}(x) Fm(x)所预测的样本 i 的分类,即预测值; y i y_i yi 是样本 i 的实际值; I ( F m ( x i ) ≠ y i ) I(F_{m}(x_i)\neq y_i) I(Fm(xi)