首页
学习
活动
专区
工具
TVP
发布

人工智能–GBM算法

人工智能之GBM算法

前言:人工智能机器学习有关算法内容,请参见公众号“科技优化生活”之前相关文章。人工智能之机器学习主要有三大类:1)分类;2)回归;3)聚类。今天我们重点探讨一下GBM算法。^_^

通过前面文章介绍,我们知道,人工智能之机器学习在生产、科研和生活中有着广泛应用,而集成学习则是机器学习的首要热门方向。之前介绍的AdaBoost算法[请参见人工智能(40)]和随机森林[请参见人工智能(25)]都属于集成学习法。

GBM梯度提升机(或梯度推进机)是一种集成学习法(Ensemble)。集成学习法(也称组合学习法)就是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一堆“弱学习器”组合成一个“强学习器”。正所谓“三个凑皮匠,合成一个诸葛亮。

GBM算法概念:

GBM(Gradient Boosting Machine)算法是Boosting算法(提升方法)的一种。之前介绍的AdaBoost算法[请参见人工智能(40)]就是一种传统而重要的Boost算法。

Boosting(提升方法)是一大类集成学习的统称。它用不同的权重将基学习器进行线性组合,使表现优秀的学习器得到重用。根据基学习器、损失函数和优化方法的不同,Boosting(提升方法)也有各种不同的形式。

GBM算法是先根据初始模型计算伪残差,之后建立一个基学习器来解释伪残差,该基学习器是在梯度方向上减少残差。再将基学习器乘上权重系数(学习速率)和原来的模型进行线性组合形成新的模型。这样反复迭代就可以找到一个使损失函数的期望达到最小的模型。

GBM算法思想:

GBM主要思想是基于之前建立的基学习器的损失函数的梯度下降方向来建立下一个新的基学习器,目的就是希望通过集成这些基学习器使得模型总体的损失函数不断下降模型不断改进

GBM重要参数设置:

一般基学习器决策树,参数大致分为三类:

1)决策树相关参数:调节模型中每个决定树的性质,比如树的深度、最小叶节点样本数、最大叶节点数等;

2)Boosting相关参数:调节模型中boosting的操作,比如学习速率(步长)、基学习器个数、建模样本比例等;

3)其他模型相关参数:调节模型总体的各项运作,比如损失函数形式、随机种子等。

下面给出GBM重要参数的设置建议:

·损失函数形式(distribution):损失函数的形式可以如下设定:a)分类问题一般选择Bernoulli分布;b)回归问题可以选择Gaussian分布。

·迭代次数(n):根据经验,迭代次数n可设置在3000-10000之间。

·学习速率(shrinkage):学习速率类似我们走路迈的步子长度,步子迈得太大容易扯着“蛋”^_^,步子迈得太小,步数增加,容易累着“腿”-迭代次数增多,训练时间和计算资源加大。因此步子太大或太小都不合适。根据经验,学习速率shrinkage设置在0.01-0.001之间比较合适。

·再抽样比率(fraction):在训练基学习器时可以使用再抽样方法,此时就称之为随机梯度提升算法stochastic gradient boosting。

·决策树的深度(depth):定义了决策树的最大深度,它可以控制过度拟合,因为决策树越深就越可能过度拟合。当然也应该用CV值(离散系数)检验。

恰当地设置和调整GBM参数,GBM算法会得到意想不到的计算效果。

GBM算法模型:

1)数据拟合模型:f1(x) = y

2)残差拟合模型:h1(x) = y - f1(x)

3)构建一个新模型:f2(x) = f1(x) + h1(x)

4)引入更多模型来纠正前一个模型的错误,从而扩展了这个模型:

f(x) = f1(x)

f2(x) = f1(x) + h1(x)

f3(x) = f2(x) + h2(x)

… …

fm(x) = fm-1(x) + hm-1(x)

其中,f1(x)表示拟合至y的初始模型。通过拟合f1(x)来初始化模型,之后每一步引入更过模型,目标是为了找到hm(x) = y - fm(x)

注:hm(x)只是一个模型,并没有要求hm(x)是一个基于树形结构的模型。这正是梯度提升更宽泛的概念以及优势之一。这只是一个通过迭代改善弱学习器效果的计算框架。在理论上,一个良好编码的梯度提升模块能够根据需要随意"插入"各种各样的弱分类器。但在实践中,hm(x)一般总是一个基于树的学习器。

GBM算法流程:

GBM算法思想如下:

对于一个需要最小化的给定算法,只要能够为其找到一个可微的损失函数,那么就可以高效地求解。求解过程为:梯度下降+线性搜索。

采用梯度下降的思想进行函数或参数寻优:

当前梯度:

线性搜索:

GBM算法流程如下:

GBM算法优点:

1)继承了单一决策树的优点,又摒弃了它的缺点;

2)能处理缺失数据;

3)对于噪声数据不敏感;

4)能拟合复杂的非线性关系;

5)精确度较高;

6)通过控制迭代次数能控制过度拟合;

7)计算速度快,性能较优。

GBM算法缺点:

1)顺序计算;

2)不便进行分布式计算,除非借助于一些方法;

3)可能会出现过拟合现象;

4)设置参数较多;

5)抗干扰能力不强。

GBM与RF比较:

1)RF随机森林(请参加人工智能(25))通常只需要设置一个超参数即可,每个节点上随机选取的特征数量。一般将该参数设置为特征总数的平方根,模型足以取得不错的效果。而GBM梯度提升机的超参数则包括提升树的数量深度、学习速率等。

2)RF随机森林的抗干扰性强,更不容易出现过拟合的情况。而GBM梯度提升机的参数设置不当可能会出现过拟合的情况。

3)在某种意义上讲,RF随机森林是一棵比GBM梯度提升机更加灵活集成树,但在一般情况下,经过良好训练的GBM梯度提升机性能优于随机森林RF。

4)RF随机森林更容易并行化。但借助于一些高效方法,GBM梯度提升机同样也能实现并行化训练。

GBM算法应用:

GBM算法可以用于回归模型,同样它也可以用于分类排名模型。GBM算法现已被广泛应用于众多领域。

GBM算法近年来被提及比较多的一个算法,这主要得益于其算法性能,及该算法在各类数据挖掘以及机器学习比赛中卓越表现

结语:

GBM梯度提升机(或梯度推进机)是一种集成学习法(Ensemble),就是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。GBM参数分为三类:决策树参数、boosting参数和其他影响模型的参数。恰当地设置和调整GBM参数,GBM算法会得到意想不到的计算效果。GBM算法可以用于回归模型,同样它也可以用于分类排名模型。GBM算法在众多数据挖掘和机器学习竞赛中有着卓越表现。已经被广泛应用于众多领域。

------以往文章推荐------

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180504G1W3AB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券