前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【 SPA 大赛】win10 python3.5.X 下开启 lightgbm 支持

【 SPA 大赛】win10 python3.5.X 下开启 lightgbm 支持

原创
作者头像
祁旭翔
修改于 2017-06-23 07:31:28
修改于 2017-06-23 07:31:28
4.7K00
代码可运行
举报
文章被收录于专栏:祁旭翔的专栏祁旭翔的专栏
运行总次数:0
代码可运行

数据分析的过程中,我们经常需要对数据建模并做预测。GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT在工业界应用广泛,通常被用于点击率预测,搜索排序等任务。GBDT也是各种数据挖掘竞赛的致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。

GBDT属于集成学习模型,它基本思想是把成百上千个分类准确率较低的树模型组合起来,成为一个准确率很高的模型。这个模型会不断地迭代,每次迭代就生成一颗新的树。然而Boosting分类器的速度实在是太慢了。为了解决这一问题,xgboost应运而生:xgboost最大的特点在于,它能够自动利用CPU的多线程并行计算,同时在算法上加以改进提高了精度。xgboost因为计算速度快,精确度高,在Kaggle和天池等数据挖掘竞赛中的逐渐成为大杀器。但是去年,xgboost迎来了一个重量级挑战者:lightGBM。

lightgbm

去年(2016年)12月,微软开源了LightGBM,地址:https://github.com/Microsoft/LightGBM 。该项目刚开源就被受到热捧:三天之内GitHub上被star了1000+次,fork了200+次;知乎上有近千人关注“如何看待微软开源的LightGBM?”。接下来简单介绍下这个号称“性能超越其他boosting”的学习模型及其编译和安装方法,以及开启python的lightgbm支持。

LightGBM全称:Light Gradient Boosting Machine,是一个基于决策树算法的快速的、分布式的、高性能 gradient boosting(GBDT、GBRT、GBM 或 MART)框架,可被用于排行、分类以及其他许多机器学习任务中。

LightGBM 是一个梯度 boosting 框架,使用基于学习算法的决策树。它是分布式的,具有以下优势:

更快的训练效率 低内存使用 更好的准确率 支持并行学习 可处理大规模数据

在实际使用的过程中,给我一个最直接的感觉就是LightGBM的速度比xgboost快很多,下图是微软官网给出lightgbm和其他学习模型之间的比较:

原理简介

现有的GBDT工具基本都是基于预排序的方法(pre-sorted)的决策树算法(如 xgboost),GBDT 虽然是个强力的模型,但却有着一个致命的缺陷,不能用类似 mini batch 的方式来训练,需要对数据进行无数次的遍历。如果想要速度,就需要把数据都预加载在内存中,但这样数据就会受限于内存的大小;如果想要训练更多的数据,就要使用外存版本的决策树算法。虽然外存算法也有较多优化,SSD 也在普及,但在频繁的 IO 下,速度仍然比较慢。

LightGBM (Light Gradient Boosting Machine)是一个实现GBDT算法的框架,在Histogram算法之上,LightGBM进行进一步的优化。首先它抛弃了大多数GBDT工具使用的按层生长 (level-wise) 的决策树生长策略,而使用了带有深度限制的按叶子生长 (leaf-wise) 算法。

除此之外,LightGBM还对类别特征的支持进行了优化,可以直接输入类别特征,不需要额外的0/1展开,并在决策树算法上增加了类别特征的决策规则。LightGBM的单机版本还有很多其他细节上的优化,比如cache访问优化,多线程优化,稀疏特征优化等,这就让参赛者省去了调参和处理的麻烦。

lightgbm安装教程:

准备:Anaconda 和VS2015。 本教程假设你已经安装好python3.5.x和visual studio2015,然后克隆仓库到本地:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone  https://github.com/Microsoft/LightGBM.git

然后根据http://blog.csdn.net/testcs_dn/article/details/54176824 教程编译dll文件和exe文件。注意配置选项一定选好,只有按照教程生成正确的dll和exe文件,才能成功安装lightgbm python包。

然后进入到python-package目录,笔者的目录是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
D:\lightgbm\lightgbm\python-package

然后打开cmd窗口,直接执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python setup.py install

此时在cmd 输入python,然后import lightgbm as lgb,如果不报错,证明安装成功!

现在最新的lightgbm python包已经更新到了0.2版本,支持sklearn的自动寻优调参,大家可以试下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import lightgbm as lgb
import pandas as pd
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import GridSearchCV

estimator = lgb.LGBMRegressor(objective='regression',colsample_bytree=0.8,subsample=0.9,subsample_freq=5)

param_grid={
    'learning_rate':[0.01,0.02,0.05,0.1],
    'n_estimators' :[1000,2000,3000,4000,5000],
    'num_leaves':[128,1024,4096]
}

fit_param={'categorical_feature':[0,1,2,3,4,5]}
gbm = GridSearchCV(estimator,param_grid,fit_params=fit_param,n_jobs=5,refit=True)
gbm.fit(X_lgb,y_lgb)

print('.....................................cv results.......................')
print(gbm.cv_results_)

更多教程见:https://github.com/Microsoft/LightGBM/blob/master/examples/python-guide/sklearn_example.py

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kaggle神器LightGBM最全解读!
GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合等优点。GBDT不仅在工业界应用广泛,通常被用于多分类、点击率预测、搜索排序等任务;在各种数据挖掘竞赛中也是致命武器,据统计Kaggle上的比赛有一半以上的冠军方案都是基于GBDT。而LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。
统计学家
2020/12/08
4.8K0
Kaggle神器LightGBM最全解读!
【白话机器学习】算法理论+实战之LightGBM算法
如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,在这简单的先捋一捋, 常见的机器学习算法:
石晓文
2020/06/28
7K0
​100天搞定机器学习|Day63 彻底掌握 LightGBM
LightGBM 全称为轻量的梯度提升机(Light Gradient Boosting Machine),由微软于2017年开源出来的一款SOTA Boosting算法框架。
统计学家
2021/11/16
1.3K0
LightGBM——提升机器算法(图解+理论+安装方法+python代码)
LightGBM是个快速的,分布式的,高性能的基于决策树算法的梯度提升框架。可用于排序,分类,回归以及很多其他的机器学习任务中。
润森
2022/09/22
2.7K0
LightGBM——提升机器算法(图解+理论+安装方法+python代码)
【机器学习基础】XGBoost、LightGBM与CatBoost算法对比与调参
虽然现在深度学习大行其道,但以XGBoost、LightGBM和CatBoost为代表的Boosting算法仍有其广阔的用武之地。抛开深度学习适用的图像、文本、语音和视频等非结构化的数据应用,Boosting算法对于训练样本较少的结构化数据领域仍然是第一选择。本文先对前述章节的三大Boosting的联系与区别进行简单阐述,并一个实际数据案例来对三大算法进行对比。然后对常用的Boosting算法超参数调优方法进行介绍,包括随机调参法、网格搜索法和贝叶斯调参法,并给出相应的代码示例。
黄博的机器学习圈子
2021/04/16
7.5K0
【机器学习基础】XGBoost、LightGBM与CatBoost算法对比与调参
机器学习LightGBM实战+随机搜索调参:准确率96.67%
今天给大家分享一下树模型的经典算法:LightGBM,介绍算法产生的背景、原理和特点,最后提供一个基于LightGBM和随机搜索调优的案例。
皮大大
2024/06/04
1.7K0
XGBoost vs LightGBM vs CatBoost:三大梯度提升框架深度解析
机器学习司猫白
2025/02/22
2080
XGBoost vs LightGBM vs CatBoost:三大梯度提升框架深度解析
开源|LightGBM基本原理,以及调用形式
久前微软 DMTK (分布式机器学习工具包)团队在 GitHub 上开源了性能超越其他 boosting 工具的 LightGBM 知乎上有近千人关注“如何看待微软开源的 LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。 GBDT :   GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最优模型,该模型具有训练效果好、不易过拟合
学到老
2018/06/01
3.8K0
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
机器学习作为人工智能的一个重要分支,旨在通过数据驱动的方式让计算机自动从经验中学习,并进行预测或决策。机器学习技术在诸多领域,如图像识别、自然语言处理、推荐系统和金融预测等,取得了广泛应用和显著成果。然而,尽管机器学习模型在特定任务中表现优异,但单一模型在泛化能力上的局限性也逐渐显现出来。
空白诗
2024/06/17
1.2K0
【机器学习】集成学习方法:Bagging与Boosting的应用与优势
机器学习6:集成学习--boosting(AdaBoost)与GBDT
GBDT相关知识模块:前向分布算法,负梯度拟合,损失函数,回归,二分类,多分类,正则化。
用户5473628
2019/08/08
2.3K0
机器学习6:集成学习--boosting(AdaBoost)与GBDT
入门 | 从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同
选自Medium 机器之心编译 参与:刘天赐、黄小天 尽管近年来神经网络复兴并大为流行,但是 boosting 算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。本文从算法结构差异、每个算法的分类变量时的处理、算法在数据集上的实现等多个方面对 3 种代表性的 boosting 算法 CatBoost、Light GBM 和 XGBoost 进行了对比;虽然本文结论依据于特定的数据集,但通常情况下,XGBoost 都比另外两个算法慢。 最近,我参加了 kaggle 竞赛 WID
机器之心
2018/05/09
2.3K0
入门 | 从结构到性能,一文概述XGBoost、Light GBM和CatBoost的同与不同
总结了九种机器学习集成分类算法(原理+代码)
集成算法(Emseble Learning) 是构建多个学习器,然后通过一定策略结合把它们来完成学习任务的,常常可以获得比单一学习显著优越的学习器。
数据STUDIO
2021/08/13
5.6K0
LightGBM原理与实现
不久前微软DMTK(分布式机器学习工具包)团队在GitHub上开源了性能超越其他boosting工具的LightGBM,在三天之内GitHub上被star了1000次,fork了200次。知乎上有近千人关注“如何看待微软开源的LightGBM?”问题,被评价为“速度惊人”,“非常有启发”,“支持分布式”,“代码清晰易懂”,“占用内存小”等。
大数据技术与机器学习
2019/11/20
1.5K0
R+工业级GBDT︱微软开源 的LightGBM(R包已经开放)
看完一篇介绍文章后,第一个直觉就是这算法已经配得上工业级属性。日前看到微软已经公开了这一算法,而且已经发开python版本,本人觉得等hadoop+Spark这些平台配齐之后,就可以大规模宣传啦~如果R包一发我一定要第一时间学习并更新在本帖下~ 哈哈
悟乙己
2019/05/28
1.5K0
LightGBM算法总结
1 LightGBM原理 1.1 GBDT和 LightGBM对比 1.2 LightGBM 的动机 1.3 Xgboost 原理 1.4 LightGBM 优化 1.4.1 Histogram 算法 1.4.2 带深度限制的 Leaf-wise 的叶子生长策略    1.4.3 直方图加速 1.4.4 直接支持类别特征 1.4.5 LightGBM并行优化 1.5 其他注意 2 lightGBM代码 2.1 基础代码 2.2 模板代码 2.2.1 二分类 2.2.2 多分类 2.3 lightGBM 和 xgboost 的代码比较 2.3.1 划分训练集测试集 2.3.2 设置参数 2.3.3 模型训练 2.3.4 模型执行时间 2.3.5 模型测试 2.3.6 分类转换 2.3.7 准确率计算 2.3.8 roc_auc_score计算 3 lightGBM调参 3.1 参数 3.1 控制参数 3.2 核心参数 3.3 IO参数 3.2 调参 4 lightGBM案例 4.1 回归案例 4.1.1 代码 4.1.2 运行结果 4.2 [ICC竞赛] 精品旅行服务成单预测 4.2.1 业务需求 4.2.2 数据表格 4.2.3 lightGBM模型 5 lightGBM的坑 5.1 设置提前停止 5.2 自动处理类别特征 5.3 自动处理缺失值
机器学习AI算法工程
2019/10/29
4K0
LightGBM算法总结
机器学习实战 | LightGBM建模应用详解
教程地址:http://www.showmeai.tech/tutorials/41
ShowMeAI
2022/03/21
2.9K0
机器学习实战 | LightGBM建模应用详解
Kaggle 神器 xgboost
在 Kaggle 的很多比赛中,我们可以看到很多 winner 喜欢用 xgboost,而且获得非常好的表现,今天就来看看 xgboost 到底是什么以及如何应用。 本文结构: 什么是 xgboost? 为什么要用它? 怎么应用? 学习资源 ---- 什么是 xgboost? XGBoost :eXtreme Gradient Boosting 项目地址:https://github.com/dmlc/xgboost 是由 Tianqi Chen http://homes.cs.washington.ed
杨熹
2018/04/03
1.4K0
Kaggle 神器 xgboost
数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}
 题目出自阿里天池赛题链接:零基础入门数据挖掘 - 二手车交易价格预测-天池大赛-阿里云天池
汀丶人工智能
2022/12/21
1.1K0
数据挖掘机器学习[四]---汽车交易价格预测详细版本{嵌入式特征选择(XGBoots,LightGBM),模型调参(贪心、网格、贝叶斯调参)}
# LightGBM大战XGBoost,谁将夺得桂冠?
  如果你是一个机器学习社区的活跃成员,你一定知道 提升机器(Boosting Machine)以及它们的能力。提升机器从AdaBoost发展到目前最流行的XGBoost。XGBoost实际上已经成为赢得在Kaggle比赛中公认的算法。这很简单,因为他极其强大。但是,如果数据量极其的大,XGBoost也需要花费很长的时间去训练。
机器学习算法工程师
2019/01/31
9470
# LightGBM大战XGBoost,谁将夺得桂冠?
AI - 机器学习GBDT算法
梯度提升决策树(Gradient Boosting Decision Tree),是一种集成学习的算法,它通过构建多个决策树来逐步修正之前模型的错误,从而提升模型整体的预测性能。
@小森
2024/03/24
2540
AI - 机器学习GBDT算法
推荐阅读
相关推荐
Kaggle神器LightGBM最全解读!
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文