使一个新的分类器去修正之前分类结果的方法就是对之前分类结果不对的训练实例多加关注。这导致新的预测因子越来越多地聚焦于这种情况。这是 Adaboost 使用的技术。
让我们详细看一下 Adaboost 算法。每一个实例的权重 wi 初始都被设为1/m第一个分类器被训练,然后他的权重误差率r1在训练集上算出,详见公式 7-1。
公式7-1:第j个分类器的权重误差率
其中 是第j个分类器对于第i实例的预测。
分类器的权重 随后用公式 7-2 计算出来。其中 η 是超参数学习率(默认为 1)。分类器准确率越高,它的权重就越高。如果它只是瞎猜,那么它的权重会趋近于 0。然而,如果它总是出错(比瞎猜的机率都低),它的权重会使负数。
公式 7-2:分类器权重
接下来实例的权重会按照公式 7-3 更新:误分类的实例权重会被提升。
公式7-3 权重更新规则
对于i=1, 2, …, m
随后所有实例的权重都被归一化(例如被 整除)
PS: 提高分类器的权重的意思是,提高某个特征相应的θ值,这个相应的θ参数值越高,就代表这个特征的值越要越小(因为我们要最小化代价函数),意味着这个特征越不被重视。
PS: 这里做归一化使得权重更新后的新权重跟没被更新到的旧权重保持同一种衡量标准。
最后,一个新的分类器通过更新过的权重训练,整个过程被重复(新的分类器权重被计算,实例的权重被更新,随后另一个分类器被训练,以此类推)。当规定的分类器数量达到或者最好的分类器被找到后算法就会停止。
为了进行预测,Adaboost 通过分类器权重 简单的计算了所有的分类器和权重。预测类别会是权重投票中主要的类别。(详见公式 7-4)
公式7-4: Adaboost 分类器
其中N是分类器的数量。