day2

在机器学习中,经常会有一些需要组合的方法:
  • 比如集成学习,在分类器的构建中很重要,可以把多个分类器组合起来,构造一个更合理的分类器
  • 比如线性回归问题,可以把多个简单模型组合在一起,可能比单个复杂的模型效果更好

在线性回归问题中,经典的组合方法有很多,随机化(比如random forest),Boosting(比如GBDT - Gradient Boosting Decision Tree,逐步梯度决策树),现在学习Gradient Boosting方法。

boosting (逐步)

Boosting主要是一种思想,表示“知错就改”。在上一步构造的模型的损失函数较大,但是已经不可挽回了,那么在下一步中构造一个纠错模型函数,与上一步的模型相加,试图将误差往小调整。

对一份数据,建立M个模型(比如分类),一般这种模型比较简单,称为弱分类器(weak learner)每次分类都将上一次分错的数据权重提高一点再进行分类,这样最终得到的分类器在测试数据与训练数据上都可以得到比较好的成绩。

day2_第1张图片
Paste_Image.png

上图(图片来自prml p660)就是一个Boosting的过程,绿色的线表示目前取得的模型(模型是由前m次得到的模型合并得到的),虚线表示当前这次模型。每次分类的时候,会更关注分错的数据,上图中,红色和蓝色的点就是数据,点越大表示权重越高,看看右下角的图片,当m=150的时候,获取的模型已经几乎能够将红色和蓝色的点区分开了。

Gradient Boosting 逐步梯度下降方法

Gradient Boosting是一种Boosting的方法,它主要的思想是,每一次新建立的模型是在之前建立的模型的损失函数的梯度下降方向。如果我们的模型能够让损失函数持续的下降,则说明我们的模型在不停的改进,而最好的方式就是让损失函数在其梯度(Gradient)的方向上下降。

算法流程:


day2_第2张图片
Paste_Image.png

推导过程省略

你可能感兴趣的:(day2)