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)

你可能感兴趣的:(机器学习)