1 引言
各位朋友大家好,欢迎来到月来客栈,我是掌柜空字符。
由AdaBoost算法中分类器权重的计算公式
可知
我们可以得到模型误差与模型权重之间的函数关系,如图1所示。
图 1. 模型误差与模型权重函数关系图
从图1可以看出,当模型误差
大于0.5时,模型权重
将会小于0,而根据式
可知
此时
将会乘以一个小于1的数,从而使得
朝着错误的方向(变小)进行更新,这显然与Adaboost的思想相违背(越容易分错的样本点对应的样本权重越大)。
由于在二分类场景下,我们总能相对容易地找到误差小于0.5(可以近似的看成准确率)的模型,但是随着分类数量的增加初始时模型的误差很难再小于0.5,而这将导致被上一个模型分类错误的样本在下一个模型中同样得不到修正。
图 2. 三分类中迭代次数与测试误差、模型权重和样本权重关系图(图片来自[2])
如图2所示为AdaBoost模型在某个三分类数据集上(训练集和测试集随机划分10次)训练后在测试集上的平均结果。从图2左侧的结果可知,AdaBoost在迭代伊始测试误差便大于0.5,且随着迭代次数的增加最终稳定在0.53左右,也就是说随着迭代过程的增加模型的拟合能力并没有提升。根据图2中间的结果可知,模型误差
先是小于0.5,然后在若干次迭代之后便稳定在了0.5附近,而这也导致模型权重
从一开始的大于0到在若干次迭代后便一直处于0附近,如图2右所示。根据式
可知,当
时,
将会保持不变,进而使得被错分类的样本点得不到修正。
领取专属 10元无门槛券
私享最新 技术干货