LightGBM: gradient boosting算法轻量级框架介绍
机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
LightGBM介绍
LightGBM(Light Gradient Boosting Machine), 是由微软“分布式机器学习工具”研发团队DMTK开发的一套基于决策树的快速、分布式、高性能的gradient boosting
框架。2017年,这套框架首次在github上开源发布。它的分布式设计的优势在于:
更快的训练速度与高效率;
更低的内存使用量;
更高的准确率;
支持并行和GPU学习;
处理超大规模数据的能力。
LightGBM发布以来,凭借这些优势迅速在机器学习领域流行,被广泛用于分类、回归、排秩等任务。
应用与测度
LightGBM支持以下的应用:
回归,目标函数是
L2
损失二值分类,目标函数是
logloss
多值分类
cross-entropy, 目标函数是
logloss
lambdarank
LightGBM安装
通常,LightGBM的安装可分为三种方式:命令行程序(CLI版本), Python包, R包. 这里,我们主要介绍Python包的安装方法。
LightGBM Python-package
首先请注意,LightGBM不支持32位的Python, 所以请安装64位的Python后再安装LightGBM.
setuptools
setuptools是一组增强工具,使用它可以很容易地下载、创建、安装、升级和卸载Python包,需要先安装setuptools作为辅助安装工具。使用pip
包管理器,在cmd命令提示符下键入:
pip install setuptools
使用pip安装
对于Windows用户,如果没有安装Visual Studio
(2015 or newer), 需要安装VC runtime
, 它可以编译C++小程序。
- 安装
wheel
.
pip install wheel
- 从wheel包安装
lightGBM
.
pip install lightgbm
- 测试是否安装成功,在Python提示符下导入:
import lightgbm as lgb
如果只返回新的提示符,没有错误提示信息,则表示安装成功了。
数据接口
LightGBM能加载三种类型的数据:
libsvm/tsv/csv/txt格式文件
Numpy数组,pandas数据框,scipy稀疏矩阵
二进制文件
加载的数据存储在Dataset
对象里。
参数设置
LightGBM能使用对列表或字典设置参数。例如:
- Booster parameters:
param = {'num_leaves':31, 'num_trees':100, 'objective':'binary'}
param['metric'] = 'auc'
- 你也可以指定多个评价测度:
param['metric'] = ['auc', 'binary_logloss']
学习
训练一个模型需要一个参数列表和数据集。
num_round = 10
bst = lgb.train(param, train_data, num_round, valid_sets=[validation_data])
训练后可以保存模型:
bst.save_model('model.txt')
需要时再加载它:
bst = lgb.Booster(model_file='model.txt') #init model
预测
一个训练过的模型可以在检验集上作预测:
# 7 entities, each contains 10 features
data = np.random.rand(7, 10)
ypred = bst.predict(data)
LightGBM: gradient boosting算法轻量级框架介绍相关推荐
- python 梯度提升树_梯度提升方法(Gradient Boosting)算法案例
GradientBoost算法 python实现,该系列文章主要是对<统计学习方法>的实现. 完整的笔记和代码以上传到Github,地址为(觉得有用的话,欢迎Fork,请给作者个Star) ...
- Gradient Boosting算法
1. 简介 GBDT是boosting的一种方法 1.1 基本原理 训练一个模型m1,产生错误e1 针对e1训练一个模型m2,产生错误e2 针对e2训练第三个模型m3,产生错误e3 - 最终预测结果是 ...
- 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法
本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting的简单介绍
转之 http://blog.csdn.net/chenhongc/article/details/9404583 http://blog.sina.com.cn/s/blog_5dd2e927010 ...
- 机器学习笔记之集成学习(四)Gradient Boosting
机器学习笔记之集成学习--Gradient Boosting 引言 回顾: Boosting \text{Boosting} Boosting算法思想与 AdaBoost \text{AdaBoost ...
- Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting
这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, jackknife, bagging, boosting, random forest 都有介绍,以下是搜索得到的原文, ...
- 机器学习 —— Boosting算法
Boosting算法(提升法) 算法的三个要素 (1)函数模型:Boosting的函数模型是叠加型的,即 F(x)=∑i=1kfi(x;θi)F(x)=∑i=1kfi(x;θi) F(x)=\sum_ ...
- boosting算法的分类
https://www.cnblogs.com/liuq/p/9947764.html 另外高维回归,L2boosting的结果和lasso相近,可能说明L2boosting可以解释为某种L1正则化的 ...
- 机器学习实战之路 —— 4 Boosting算法
机器学习实战之路 -- 4 Boosting算法 1. Boosting算法概述 2. 主要算法实现 2.1 AdaBoost 2.2 GBDT 2.3 XGBoost 3. 实战 - 鸢尾花数据集分 ...
- [机器学习] Boosting算法4 --- LightGBM介绍与分布式
[机器学习] Boosting算法1 --- AdaBoost [机器学习] Boosting算法2 --- GBDT [机器学习] Boosting算法3 --- XGBoost [机器学习] Bo ...
最新文章
- 本科发表6篇SCI论文,获多个荣誉,他刚入学就享受研究生待遇!
- Vue 实现的音乐项目 music app 知识点总结分享
- (转载)keras使用入门及3D卷积神经网络资源
- 链表--只知道当前节点指针删除当前节点
- APM - 使用JavaAgent+Javassit 插桩C3P0
- python多线程下载器_用 python 实现一个多线程网页下载器
- 【转】阿里技术专家详解DDD系列 第二讲 - 应用架构
- Hibernate - Query简易
- vue怎么合并两个视频_vue怎么把照片合并视频
- hive sql 行列转换
- 心书微信书 v1.0.0
- Machine Learning | (1) Scikit-learn与特征工程
- javascript-BOM-页面加载事件
- 个人安装RHEL7需要做的事情
- Selective Search算法-候选框生成
- win10系统开启IIS服务
- [31期]命运掌握在自己手中
- SSM巢湖学院校园报修系统毕业设计源码021813
- Python3.8的下载与安装
- Python 那么火,到底可以用来做什么?我们来说说 Python3 的主要应用