AdaBoost算法的简单介绍

adaboost是集成学习中的一种,通过组合多个弱分类器来达到强分类器的效果。

简单来说,adaboost其实是将元数据空间划分成多个子空间,并且保障每个空间上只存在一类元素。

下面我们将通过例子来理解adaboost的思想!!!

(1)w表示每个点的权重。初始状态下每个点的权重是相同的,都是0.1;在这个例子中有正1和负1两种类型。

AdaBoost算法的简单介绍_第1张图片

 

(2)选取误差率最低的点作为分类点,并计算误差率。通过公式得到分类器的系数a1。这个系数后面将会用来更新权重。

 

AdaBoost算法的简单介绍_第2张图片

(3)更新每个点的权重,预测错误点的点的权重将会上升,预测正确的点的权重将会下降。

AdaBoost算法的简单介绍_第3张图片

(4)重复(1)(2)(3)中的步骤直到全部分类正确。

AdaBoost算法的简单介绍_第4张图片

AdaBoost算法的简单介绍_第5张图片

AdaBoost算法的简单介绍_第6张图片

最后得到的分类器通过sign函数后,就可以得到最后的预测值。

AdaBoost算法的简单介绍_第7张图片

简单的案例当然少不来复杂的数据公式作为理论基础了

下面将简单介绍一下这些复杂的数据公式

首先我们在看上面案例的时候,肯定是会对系数a的公式来源产生疑问。

为什么a=\frac{1}{2}*ln(\frac{1-\varepsilon }{\varepsilon }),这就需要从损失函数说起了。

adaboost的损失函数为loss=\frac{1}{n}*\sum e^{-y*f(x))},

又因为adaboosts当前这轮的分类器要依赖上一轮的分类器,所以

f_{k}(x)=f_{k-1}(x)+a_{k}*G_{k}(x)

所以loss可以转化为AdaBoost算法的简单介绍_第8张图片

,lossAdaBoost算法的简单介绍_第9张图片

有因为我们需要将它和错误率结合上,所以上面的累加我们可以分成两部分,即正确预测的是一部分错误预测的是一部分。

所以公式可以变化为

其中exp(am)表示e^{a_{m}},其实也就是\sum w((1-\varepsilon )*e^{-a_{m}}+\varepsilon *e^{a_{m}}),然后这个式子对a_{m}求导,就可以得到a=\frac{1}{2}*ln(\frac{1-\varepsilon }{\varepsilon })

adaboost的优缺点

优点:解释性强,可以处理连续值和离散值。

缺点:对异常样本敏感,异常样本往往获取到较高的权重,对模型的效果影响较大

结束!!!!!

头皮发麻!!!!!

 

 

你可能感兴趣的:(机器学习)