概述
http://baijiahao.baidu.com/s?id=1570175598042474&wfr=spider&for=pc
一、GBM简介
GBM全称为Gradient Boosting Machine,是Boosting算法的一种。Boosting算法详见《集成算法系列之初识》。GBM主要思想是基于之前建立的基学习器的损失函数的梯度下降方向来建立下一个新的基学习器,目的就是希望通过集成这些基学习器使得模型总体的损失函数不断下降,模型不断改进。
二、GBM算法框架
以下算法框架来自文章《Gradient boosting machines, a tutorial》
简单来说,在GBM中我们是这样整合各个基学习器的:
我们希望模型的损失函数能在梯度方向上下降,现计算当前模型损失函数的梯度方向:
在建立新的基学习器时我们希望能满足以下条件:
三、GBM的Python实现
在Python中有可以使用GradientBoostingClassifier、GradientBoostingRegression等来进行GBM建模。以GradientBoostingClassifier为例,该函数中基学习器为决策树,参数类型大致分为三类,一是决策树相关的参数,比如树的深度、最小叶节点样本数、最大叶节点数等;二是Boosting相关的参数,比如学习步长、基学习器个数、建模样本比例等;三是其他模型参数,比如损失函数定义、随机种子等;
对于如何调参,网上已经有人整理了一套方法,简易思路如下:
step 1: 选择一个相对来说稍微高一点的learning rate,一般默认的值是0.1;
step 2: 基于当前的learning rate,调整决策数数量,即基学习器的数量;
step 3: 基于当前的learning rate和基学习器数量,调整决策树的参数;
step 3.1: 调节max_depth 和 num_samples_split;
step 3.2: 调节min_samples_leaf;
step 3.3:调节max_features;
step 4: 调整子样本比例subsample,再降低learning rate并响应地提高基学习器个数;
具体的详见sklearn的官方文档。
最后
以上就是忧伤大船为你收集整理的集成算法系列之GBM的全部内容,希望文章能够帮你解决集成算法系列之GBM所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复