上篇了解了如今最火的框架之一xgboost,接下来看下另一款和它一样令人惊艳的框架lightgbm

起源

LightGBM全称为Light Gradient Boosting Machine ,由微软开源,一个基于决策树,并且具有快速、分布式、高性能特点的梯度提升框架。它可被用于排行、分类以及其他许多机器学习任务中。同样的,为了方便使用,lightgbm也封装了相应的python库,来看看怎么获得它。

安装

安装lightgbm之前呢,需要先安装依赖包setuptools, wheel, numpy 和 scipy,直接用pip即可,-U则表示存在该包的话就更新

pip install setuptools wheel numpy scipy scikit-learn -U

依赖安装好之后就可以安装lightgbm了

pip install lightgbm

可在ide导入验证是否安装成功

import lightgbm as lgb

数据形式

LightGBM 能够使用以下几种方式来加载数据:

  • 逗号分隔值(CSV)文件
  • NumPy 2D阵列
  • LightGBM 二进制文件
#加载 ligsvm 文本文件或 LightGBM 二进制文件到 Dataset 中:
train_data = lgb.Dataset('train.svm.bin')#加载 numpy 数组到 Dataset 中:
data = np.random.rand(500, 10)  # 500 个样本, 每一个包含 10 个特征
label = np.random.randint(2, size=500)  # 二元目标变量,  0 和 1
train_data = lgb.Dataset(data, label=label)#加载 scpiy.sparse.csr_matrix 数组到 Dataset 中:
csr = scipy.sparse.csr_matrix((dat, (row, col)))
train_data = lgb.Dataset(csr)#创建验证数据:
test_data = train_data.create_valid('test.svm')
#或者
test_data = lgb.Dataset('test.svm', reference=train_data)#指定 feature names(特征名称)和 categorical features(分类特征):
train_data = lgb.Dataset(data, label=label, feature_name=['c1', 'c2', 'c3'], categorical_feature=['c3'])

tips:

  • LightGBM 中, 验证数据应该与训练数据格式保持一致。
  • LightGBM 可以直接使用分类特征作为输入. 它不需要被转换成独热编码, 并且它比独热编码更快(约快上 8 倍)。

参数设定

LightGBM 可以使用列表或字典来设置参数:

param = {'num_leaves':31, 'num_trees':100, 'objective':'binary'}param['metric'] = 'auc'param['metric'] = ['auc', 'binary_logloss']

训练只需传入param即可

训练

训练模型时, 需要参数列表和数据集:

num_round = 10
bst = lgb.train(param, train_data, num_round, valid_sets=[test_data])

param:各项参数,是一个字典

train_data:训练数据集

num_round:boosting迭代计算次数

valid_sets:验证集设置

test_data:验证数据集

预测

已经训练好的模型可以对数据集进行预测:

# 7 个样本, 每一个包含 10 个特征
data = np.random.rand(7, 10)
ypred = bst.predict(data)

这样简单的lightgbm使用就完成啦~

初识LightGBM相关推荐

  1. 多分类 数据不平衡的处理 lightgbm

    前言 数据不平衡问题在机器学习分类问题中很常见,尤其是涉及到"异常检测"类型的分类.因为异常一般指的相对不常见的现象,因此发生的机率必然要小很多.因此正常类的样本量会远远高于异常类 ...

  2. lightgbm 决策树 可视化 graphviz

    决策树模型,XGBoost,LightGBM和CatBoost模型可视化 安装 graphviz 参考文档 http://graphviz.readthedocs.io/en/stable/manua ...

  3. lightgbm保存模型参数

    20210205 params = {'task': 'train', # 执行的任务类型'boosting_type': 'gbrt', # 基学习器'objective': 'lambdarank ...

  4. xgboost lightgbm catboost 多分类 多标签

    xgboost 与 lightgbm 官方均支持多分类任务,但不直接支持多标签分类任务,实现多标签任务的方法之一是结合sklearn 提供的 multiclass 子类,如OneVsRestClass ...

  5. 梯度提升决策树(GBDT)与XGBoost、LightGBM

    20211224 [机器学习算法总结]XGBoost_yyy430的博客-CSDN博客_xgboost xgboost参数 默认:auto.XGBoost中使用的树构造算法.可选项:auto,exac ...

  6. day3----编码-集合-深浅copy-文件操作-函数初识

    day3----编码-集合-深浅copy-文件操作-函数初识 本文档主要内容: 一 编码 二 集合 三 深浅copy 四 文件操作 五 函数初识 首先,我们来看看两个字符串的比较 打开cmd,进入do ...

  7. ⑥python模块初识、pyc和PyCodeObject

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  8. 初识java类的接口实现

    初识java类的接口实现 如果两个类之间不存在继承关系,且两个类都想实现同一个接口,两个类都必须实现接口中全部方法,否则报语法错误 如果两个类之间存在继承关系也想实现同一个接口,父类如果实现了某个接口 ...

  9. vba 编辑combobox内容_初识Visual Basic编辑器并建立一段简单的代码

    大家好,从今日开始我正式推出"VBA之EXCEL应用"教程,这个教程是面向初学人员的教程,教程一共三册,十七个章节,从简单的录制宏实现一直讲到窗体的搭建,都是我们在利用EXCEL工 ...

最新文章

  1. java id生成器 分布式_分布式高效唯一ID生成器(sequence)
  2. 编程之美-数组分割方法整理
  3. Java线程详解(4)-线程状态的转换
  4. java forname 原理_Java Class.forName()用法和newInstance()方法原理解析
  5. Redis实现之整数集合
  6. oracle模拟重叠事务,ORACLE的事务读一致性与语句读一致性
  7. “资源添加到Web应用程序[]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间”
  8. php短网址案例,php生成短网址原理与实例
  9. 如果一切需要重学,2014年应该学哪些技术?
  10. 【医疗影像处理】使用前景像素的均值和方差(mean,std)对图像进行归一化(背景像素为0)【numpy-code】
  11. 打开网页右下角广告栏慢慢出现,点击慢慢消失
  12. gst-launch-1.0
  13. lenovo启动热键_常见电脑启动项热键
  14. 生成领料单(编号:20110704A1153)
  15. 2019年7月22日 学习日记
  16. 【Rust 日报】2022-03-27 Google对25名Rust开源贡献者做出奖励
  17. 哈尔滨校区学员扫码绑定教练、签到、签退、评价说明
  18. 1架飞机,加满油可以跑1的距离,问N架飞机最多能跑多远
  19. 凤凰大视野----冷暖人生: 记录平凡人的普通人生
  20. Django中的url路由机制------学习mooc中《Python云端系统开发入门》

热门文章

  1. 【功能安全】【ISO26262】整体介绍
  2. Linux Command who、whois、whoami
  3. Keras自定义损失函数出现:ValueError: Unknown loss function: focal_loss
  4. 《三体1》7.三体1、周文王、长夜
  5. iOS:DES加密iOS和Android的匹配
  6. mysql的repeat语句_mysql实例 repeat语句的用法
  7. rancher 启动命令_Rancher 中文文档 —— 快速入门指南
  8. 流量Ⅰ--一文了解pcap网络数据包的结构?
  9. LeetCode日常刷题1、657、717、67
  10. linux查看操作系统版本信息