adaboost理解

源至
https://github.com/apachecn/hands_on_Ml_with_Sklearn_and_TF/blob/dev/docs/7.%E9%9B%86%E6%88%90%E5%AD%A6%E4%B9%A0%E5%92%8C%E9%9A%8F%E6%9C%BA%E6%A3%AE%E6%9E%97.md
再加上自己一点补充与理解

使一个新的分类器去修正之前分类结果的方法就是对之前分类结果不对的训练实例多加关注。这导致新的预测因子越来越多地聚焦于这种情况。这是 Adaboost 使用的技术。

让我们详细看一下 Adaboost 算法。每一个实例的权重 wi 初始都被设为1/m第一个分类器被训练,然后他的权重误差率r1在训练集上算出,详见公式 7-1。

公式7-1:第j个分类器的权重误差率
这里写图片描述
其中 yj~i 是第j个分类器对于第i实例的预测。

分类器的权重 αj 随后用公式 7-2 计算出来。其中 η 是超参数学习率(默认为 1)。分类器准确率越高,它的权重就越高。如果它只是瞎猜,那么它的权重会趋近于 0。然而,如果它总是出错(比瞎猜的机率都低),它的权重会使负数。

公式 7-2:分类器权重

这里写图片描述

接下来实例的权重会按照公式 7-3 更新:误分类的实例权重会被提升。

公式7-3 权重更新规则

对于i=1, 2, …, m
这里写图片描述

随后所有实例的权重都被归一化(例如被 i=1mwi 整除)

PS: 提高分类器的权重的意思是,提高某个特征相应的θ值,这个相应的θ参数值越高,就代表这个特征的值越要越小(因为我们要最小化代价函数),意味着这个特征越不被重视。

PS: 这里做归一化使得权重更新后的新权重跟没被更新到的旧权重保持同一种衡量标准。

最后,一个新的分类器通过更新过的权重训练,整个过程被重复(新的分类器权重被计算,实例的权重被更新,随后另一个分类器被训练,以此类推)。当规定的分类器数量达到或者最好的分类器被找到后算法就会停止。

为了进行预测,Adaboost 通过分类器权重 αj 简单的计算了所有的分类器和权重。预测类别会是权重投票中主要的类别。(详见公式 7-4)

公式7-4: Adaboost 分类器

这里写图片描述

其中N是分类器的数量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章