初识LightGBM

上篇了解了如今最火的框架之一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使用就完成啦~

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值