量子机器学习及区块链技术导论
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2.6 Adaboost算法

Adaboost算法的主要思想是选用几个效果不佳的分类器,组合成为一个效果很好的分类器,以避免支持向量机算法中的计算量问题。Adaboost算法如图2.6所示。

img

图2.6 Adaboost算法

在图2.6中,红色(圆圈内带黑点者)和蓝色(圆圈内不带黑点者)分别表示正样本数据和负样本数据。首先为所有的正样本数据和负样本数据赋予相同的权重,训练出一个基本的弱分类器(Weak Classifier)1;注意图右上角的两个蓝色的数据和左下角一个红色的数据,被错分了,因此在第2次训练时,增加了错误数据的权重,也就是放大了这些数据,得到弱分类器2;同样,在第3次训练中,放大了弱分类器2判断错误的两个蓝色数据,得到弱分类器3。最终的分类器是所有弱分类器的线性组合,也就是为弱分类器加以权重αα与每个弱分类器自身的错误率有关。

以2部爱情片和2部动作片为例,数据包括了打斗镜头、接吻镜头和爆破镜头。首先对这4组数据赋予相同的权重,如都乘以1;然后训练弱分类器1,也就是用爆破镜头个数大于或等于20,来进行二元分类,即yes或no,2部爱情片没有悬念地落在了no这一类,但有1部动作片也“不幸”落入no这一类,另1部动作片落入yes这一类。分错是常见的,因为这是弱分类器,所以需要对其进行调整,增加分错数据的重要性,如错误判断为no的动作片,把它的全部镜头个数都乘以2倍,再次训练这个弱分类器,得到2部动作片落入yes类、2部爱情片落入no类。

现实中数据往往没有这么简单,不是一个分类器就可以搞定的,因此需要构建N个类似的弱分类器分别进行调整,给每个调整后的弱分类器分配权重αn,每个αn的值都来自调整后弱分类器的最终错误率。最后的分类结果是将新电影数据输入调整好的弱分类器后的结果。在本节的电影数据中,经过Adaboost算法处理后,新电影被正确地分类为爱情片。

用一句话来概括Adaboost算法,就是训练多个弱分类器,使其成为一个好的分类器。Adaboost算法是一种具有很高精度的分类器,并且很容易理解;其缺点是训练时间过长,异常样本在迭代中可能会获得较高的权重,影响最终分类结果的准确性。