机器学习训练营——机器学习爱好者的自由交流空间(入群联系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算法轻量级框架介绍相关推荐

  1. python 梯度提升树_梯度提升方法(Gradient Boosting)算法案例

    GradientBoost算法 python实现,该系列文章主要是对<统计学习方法>的实现. 完整的笔记和代码以上传到Github,地址为(觉得有用的话,欢迎Fork,请给作者个Star) ...

  2. Gradient Boosting算法

    1. 简介 GBDT是boosting的一种方法 1.1 基本原理 训练一个模型m1,产生错误e1 针对e1训练一个模型m2,产生错误e2 针对e2训练第三个模型m3,产生错误e3 - 最终预测结果是 ...

  3. 3. 机器学习中为什么需要梯度下降_梯度提升(Gradient Boosting)算法

    本文首发于我的微信公众号里,地址:梯度提升(Gradient Boosting)算法 本文禁止任何形式的转载. 我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI ...

  4. 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 ...

  5. 机器学习笔记之集成学习(四)Gradient Boosting

    机器学习笔记之集成学习--Gradient Boosting 引言 回顾: Boosting \text{Boosting} Boosting算法思想与 AdaBoost \text{AdaBoost ...

  6. Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting

    这两天在看关于boosting算法时,看到一篇不错的文章讲bootstrap, jackknife, bagging, boosting, random forest 都有介绍,以下是搜索得到的原文, ...

  7. 机器学习 —— Boosting算法

    Boosting算法(提升法) 算法的三个要素 (1)函数模型:Boosting的函数模型是叠加型的,即 F(x)=∑i=1kfi(x;θi)F(x)=∑i=1kfi(x;θi) F(x)=\sum_ ...

  8. boosting算法的分类

    https://www.cnblogs.com/liuq/p/9947764.html 另外高维回归,L2boosting的结果和lasso相近,可能说明L2boosting可以解释为某种L1正则化的 ...

  9. 机器学习实战之路 —— 4 Boosting算法

    机器学习实战之路 -- 4 Boosting算法 1. Boosting算法概述 2. 主要算法实现 2.1 AdaBoost 2.2 GBDT 2.3 XGBoost 3. 实战 - 鸢尾花数据集分 ...

  10. [机器学习] Boosting算法4 --- LightGBM介绍与分布式

    [机器学习] Boosting算法1 --- AdaBoost [机器学习] Boosting算法2 --- GBDT [机器学习] Boosting算法3 --- XGBoost [机器学习] Bo ...

最新文章

  1. 本科发表6篇SCI论文,获多个荣誉,他刚入学就享受研究生待遇!
  2. Vue 实现的音乐项目 music app 知识点总结分享
  3. (转载)keras使用入门及3D卷积神经网络资源
  4. 链表--只知道当前节点指针删除当前节点
  5. APM - 使用JavaAgent+Javassit 插桩C3P0
  6. python多线程下载器_用 python 实现一个多线程网页下载器
  7. 【转】阿里技术专家详解DDD系列 第二讲 - 应用架构
  8. Hibernate - Query简易
  9. vue怎么合并两个视频_vue怎么把照片合并视频
  10. hive sql 行列转换
  11. 心书微信书 v1.0.0
  12. Machine Learning | (1) Scikit-learn与特征工程
  13. javascript-BOM-页面加载事件
  14. 个人安装RHEL7需要做的事情
  15. Selective Search算法-候选框生成
  16. win10系统开启IIS服务
  17. [31期]命运掌握在自己手中
  18. SSM巢湖学院校园报修系统毕业设计源码021813
  19. Python3.8的下载与安装
  20. Python 那么火,到底可以用来做什么?我们来说说 Python3 的主要应用

热门文章

  1. 编程一年来的疑惑和思考
  2. 国人同庆,你我同乐哦!
  3. 计算机的二进制,十六进制等的数值概念
  4. 游戏开发之extern “C“、内存申请及匿名函数(lambda)(C++基础)
  5. C++程序设计(三:可视化)
  6. shell训练营Day30
  7. 覆盖原有div或者Input的鼠标移上去描述
  8. ubuntu mysql远程连接
  9. Python: 字符串
  10. 也乱弹Book.Save而引OO对话