机器学习:提升树(boosting tree)算法的思想

《实例》阐述算法,通俗易懂,助您对算法的理解达到一个新高度。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!

01

回顾

昨天编写了单个决策树用于回归的实现源码,它的构建实际上就是在不断寻找最优的划分属性和其取值的过程,分割后的节点若特征的取值都一样,或者包含的节点个数小于某个阈值,都将被标记为叶子节点,不再继续分裂,并且这个节点的取值为某个目标值,而不是像非叶子节点那样为某个最优特征及其分割值。

这是一个决策树用于回归的算法,以此为基础模型,如果按照某个求解目标组合到一起的好多棵决策树的模型,就称为提升树集成模型。

02

第二棵树的提升target

假如我们去银行贷款,银行会根据你的收入情况和年龄这两个特征去判断借给你的钱数,假如你今天上大一(18岁的),收入几乎为0,根据先验数据获知,对于没毕业的大学生,银行会贷款150元。根据10个输入的样本,我们得出了如下一个决策树,据此得出,大一新生小红从银行能借到的贷款为100元。

预测值100元,与目标值150元相比,会得到一个50元的残差,这样,我们构建第二棵决策树时,提升的目标就是让最终的预测值尽可能的接近残差值50,注意,这是与提升方法Adaboost最大的区别,第二棵决策树是要对残差项拟合,因此此时的10个原初始样本对应的目标值都变为了残差项,比如小红的目标值变为了50!

再次构建第二颗决策树,可以看到这棵树的叶节点的取值都相对小一些,因为此时的拟合目标为残差,相对第一棵的初始拟合值要小。

经过以上两步,得到了两棵决策树,假如我们到此打住,那么请问借给小红的钱预测值应该为多少?

应该为第一棵树的预测结果+第二棵树的预测结果 = 100 + 20 = 120 元,因此银行会借钱给小红120元,更接近了实际的预测值150元,这就是提升树集成的基本思路,最重要的是弄明白,初始的目标值拟合只使用了一次,以后所有的拟合目标值都是使最新的残差。

还记得昨天的决策树模型吗,它在求损失函数是使用了均方误差方法,这样也是简化了优化的难度。

但是,如果对于一般的损失函数,每一步的优化并不是那么容易,此时应该怎么计算损失值呢?

03

梯度提升决策树

针对这一问题,Freidman 提出了梯度提升( gradient boosting ) 算法。这是利用最速下降法的近似方法,关键在于利用损失函数的负梯度在当前模型的值

作为回归问题提升树算法中的残差的近似值去拟合一个回归树,这种算法简写为GBDT。

GBDT的算法思路与用均方误差拟合的提升树(02节阐述的算法)思路是基本一致的,不同之处在于求解每个样本的残差项是以上公式中描述损失函数的负梯度去拟合回归树。

具体的算法实施细节,可以参考相关书籍和博客,在此不再详述。

明天开始系统地总结深度学习之神经网络相关的理论和几个常用算法。欢迎您的关注。

算法channel已推送的更多文章:

1 机器学习集成算法:XGBoost思想

2 机器学习:XGBoost 安装及实战应用

3 决策树回归:不掉包源码实现

原文发布于微信公众号 - 算法channel(alg-channel)

原文发表时间:2017-12-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

机器学习大牛最常用的5个回归损失函数,你知道几个?

1804
来自专栏机器学习算法与Python学习

一文让你入门CNN,附3份深度学习视频资源

CNN简介 文末附三份深度学习视频资源 后台回复关键词(20180310) 目录: 一些视频资源和文章 CNN简介 图像即四维张量? 卷积的定义 CNN如何工作...

4207
来自专栏ATYUN订阅号

Python机器学习的练习三:逻辑回归

在这篇文章中,我们将把我们的目标从预测连续值(回归)变成分类两个或更多的离散的储存器(分类),并将其应用到学生入学问题上。假设你是一个大学的管理人员,你想要根据...

5274
来自专栏用户2442861的专栏

Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

作者:我爱机器学习 链接:https://zhuanlan.zhihu.com/p/22094600 来源:知乎 著作权归作者所有。商业转载请联系作者获得...

2391
来自专栏小小挖掘机

推荐系统遇上深度学习(六)--PNN模型理论和实践

推荐系统遇上深度学习(五)--Deep&Cross Network模型理论和实践

2452
来自专栏大数据挖掘DT机器学习

判别模型、生成模型与朴素贝叶斯方法

1、判别模型与生成模型 回归模型其实是判别模型,也就是根据特征值来求结果的概率。形式化表示为 ? ,在参数 ? 确定的情况下,求解条件概率 ? 。通俗的解...

3676
来自专栏Bingo的深度学习杂货店

《机器学习实战》总结篇

前些天完成了《机器学习实战》这本书的学习,也利用 Python3 实现了各个章节的代码,对传统的机器学习方法有了更进一步的了解,这里做一个总结。 代码传送门: ...

3804
来自专栏小石不识月

深度学习解决文本分类问题的最佳实践

文本分类(Text classification)描述了一类常见的问题,比如预测推文(Tweets)和电影评论的情感,以及从电子邮件中区分出垃圾邮件。

5508
来自专栏AI科技大本营的专栏

干货 | 深度详解ResNet及其六大变体

编译 | 图普科技 本文由图普科技工程师编译自《An Overview of ResNet and its Variants》。 从AlexNet[1]在201...

4546
来自专栏机器学习之旅

理论:SVM理论解析及python实现

关于常见的分类算法在不同数据集上的分类效果,在《Do we Need Hundreds of Classifiers to Solve Real World C...

1143

扫码关注云+社区

领取腾讯云代金券