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相关推荐

  1. 【深度学习】快照集成等网络训练优化算法系列

    [深度学习]快照集成等网络训练优化算法系列 文章目录 1 什么是快照集成? 2 什么是余弦退火学习率? 3 权重空间中的解决方案 4 局部与全局最优解 5 特别数据增强 6 机器学习中解决数据不平衡问 ...

  2. 集成算法中的Bagging

    Bagging meta-estimator 基本描述 在集成算法中,bagging 方法会在原始训练集的随机子集上构建一类黑盒估计器的多个实例,然后把这些估计器的预测结果结合起来形成最终的预测结果. ...

  3. halcon机器视觉算法原理与编程实战_快速弄懂机器学习里的集成算法:原理、框架与实战...

    作者:  博观厚积 简书专栏:https://www.jianshu.com/u/2f376f777ef1 1. 关于集成学习算法 集成学习算法,通俗地讲就是:三个臭皮匠,顶个诸葛亮,这在很多地方都有 ...

  4. xgboost简单介绍_好文干货|全面理解项目中最主流的集成算法XGBoost 和 LightGBM

    点击上方"智能与算法之路",选择"星标"公众号 第一时间获取价值内容 本文主要介绍基于 Boosting 框架的主流集成算法,包括 XGBoost 和 Ligh ...

  5. Python机器学习 集成算法实例

    import numpy as np import pandas as pdimport matplotlib.pyplot as plt %matplotlib inlineSEED = 222 n ...

  6. 数据挖掘:模型选择——集成算法与树模型

    之前介绍的树模型属于弱学习器,本身的算法比较简单,但是与集成算法合并后,会产生更好的效果.比如:决策树+bagging=随机森林:决策树+boosting=提升树 这里先简单介绍下集成算法,然后对随机 ...

  7. 机器学习(4):集成算法(Bagging、Boosting、Stacking)

    目录 一.Bagging模型:随机森林 1.1 bagging的原理 1.2 随机森林算法 Random Forest 1.3 随机森林的推广:极限随机数 extra trees 二.Boosting ...

  8. 最小径集的算法_机器学习的利器——集成算法

    最近在打算法竞赛的时候用到了集成算法,效果还不错,索性就总结了一篇集成算法的文章,希望能帮到正在转行的数据分析师们. 集成算法核心思想 集成算法的核心思想是通过构建并结合多个学习器来完成学习任务,也就 ...

  9. linux平台下QtCreator中集成Valgrind系列工具

    linux平台下QtCreator中集成Valgrind系列工具 ###1.valgrind 安装 valgrind 安装 2.打开QtCreator >> Analyze 你就会发现 这 ...

最新文章

  1. go mysql socket_Go语言实现socket实例
  2. python 小说-用python给自己做一款小说阅读器过程详解
  3. Ocelot简易教程(七)之配置文件数据库存储插件源码解析
  4. APP安全环节缺失,手游运营商怎样应对APP破解困境
  5. 大数据,并非一蹴而就
  6. python3 Tkinter GUI 试水
  7. java子字符串个数组_javasript 字符串 数组操作
  8. mysql密码错误怎么回事_mysql密码错误解决方法
  9. PSpice17.4-2019和MATLAB2019a/simulink的联合仿真
  10. eps图片怎样用html显示,eps图片用什么软件打开
  11. 台达plc控制伺服电机编程实例_三菱Q系列PLC控制伺服电机编程实例
  12. 苹果推送证书不受信任解决办法2022年
  13. 计算机网络设备维修会计分录,设备维修记录什么会计科目
  14. 教师计算机考核有啥用,教师计算机使用管理制度和考核方案
  15. 数模优秀论文分析(国赛C题)
  16. linux 3.0实时性,如何1分钟内对 Linux 性能快速分析(113资讯网)
  17. python怎么读取txt文件并统计其字数-python读取word文本进行词频统计
  18. 手机语言 Symbian 术语表
  19. 【编译原理】第8讲 语法制导翻译(习题答案)——MOOC哈尔滨工业大学陈鄞
  20. vue2.0引入icon.styl不断报错

热门文章

  1. C端和B端的差异分析
  2. SSL证书的加密算法有哪些?
  3. ubuntu小技巧6--如何修复Ubuntu系统引导项
  4. java时间格式化与格式
  5. python中占位符解释
  6. 一个IT猎头关于跳与不跳的回复
  7. C++的errorC2039和C2679的解决
  8. 天啦撸~ChatGPT通过国际软件测试工程师(ISTQB)认证了~
  9. padStart 和 padEnd的使用
  10. 拼多多开店不做推广能行吗?