adaboost是集成学习中的一种,通过组合多个弱分类器来达到强分类器的效果。
简单来说,adaboost其实是将元数据空间划分成多个子空间,并且保障每个空间上只存在一类元素。
下面我们将通过例子来理解adaboost的思想!!!
(1)w表示每个点的权重。初始状态下每个点的权重是相同的,都是0.1;在这个例子中有正1和负1两种类型。
(2)选取误差率最低的点作为分类点,并计算误差率。通过公式得到分类器的系数a1。这个系数后面将会用来更新权重。
(3)更新每个点的权重,预测错误点的点的权重将会上升,预测正确的点的权重将会下降。
(4)重复(1)(2)(3)中的步骤直到全部分类正确。
最后得到的分类器通过sign函数后,就可以得到最后的预测值。
简单的案例当然少不来复杂的数据公式作为理论基础了
下面将简单介绍一下这些复杂的数据公式
首先我们在看上面案例的时候,肯定是会对系数a的公式来源产生疑问。
为什么,这就需要从损失函数说起了。
adaboost的损失函数为loss=,
又因为adaboosts当前这轮的分类器要依赖上一轮的分类器,所以
所以loss可以转化为。
,loss。
有因为我们需要将它和错误率结合上,所以上面的累加我们可以分成两部分,即正确预测的是一部分错误预测的是一部分。
所以公式可以变化为
其中exp(am)表示,其实也就是,然后这个式子对求导,就可以得到
adaboost的优缺点
优点:解释性强,可以处理连续值和离散值。
缺点:对异常样本敏感,异常样本往往获取到较高的权重,对模型的效果影响较大
结束!!!!!
头皮发麻!!!!!