Python lightgbm 模块:常见用法

Python lightgbm 模块常见用法

lightgbm 是一个高效的梯度提升框架,用于构建机器学习模型。它基于决策树算法,提供了快速的训练速度和较低的内存消耗,特别适合处理大规模数据。此模块的主要特色是其使用了基于 histogram 的学习方法,并支持多线程和分布式训练,适配的 Python 版本为 3.5 及以上。

应用场景

lightgbm 广泛应用于分类、回归、排序等多种机器学习任务,尤其在 Kaggle 比赛以及各类机器学习项目中外。它适合处理大规模数据集,对于高维稀疏特征(例如分类变量)表现优异。此外,lightgbm 支持各种特征组合,并能够通过网格搜索或贝叶斯优化等方法进行模型的调优。

安装说明

lightgbm 并不是 Python 的默认模块,需要通过 pip 进行安装。在终端中输入以下命令即可完成安装:

1
pip install lightgbm

这样就能快速安装并使用 lightgbm 模块。

用法举例

1. 示例一:分类任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import lightgbm as lgb  # 导入lightgbm模块
from sklearn.model_selection import train_test_split # 导入数据集拆分工具
from sklearn.datasets import load_iris # 导入鸢尾花数据集

# 加载数据集
data = load_iris()
X = data.data # 特征
y = data.target # 目标变量

# 拆分数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建lightgbm数据集
train_data = lgb.Dataset(X_train, label=y_train) # 使用训练数据集
test_data = lgb.Dataset(X_test, label=y_test) # 使用测试数据集

# 设置模型参数
params = {
'objective': 'multiclass', # 多分类任务
'num_class': 3, # 类别数量
'metric': 'multi_logloss' # 评价函数
}

# 训练模型
model = lgb.train(params, train_data, valid_sets=[test_data], num_boost_round=100) # 训练模型

2. 示例二:回归任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import lightgbm as lgb  # 导入lightgbm
import numpy as np # 导入numpy

# 生成一些示例数据
X = np.random.rand(100, 10) # 100个样本,10个特征
y = X.sum(axis=1) + np.random.normal(0, 0.1, 100) # 目标变量,加上一些噪声

# 拆分数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建lightgbm数据集
train_data = lgb.Dataset(X_train, label=y_train)

# 设置模型参数
params = {
'objective': 'regression', # 回归任务
'metric': 'mean_squared_error' # 评价指标
}

# 训练模型
model = lgb.train(params, train_data, num_boost_round=100) # 训练模型

3. 示例三:评分任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import lightgbm as lgb  # 导入lightgbm
import pandas as pd # 导入pandas

# 创建一些示例数据
data = {'feature1': [1, 2, 3, 4, 5], 'feature2': [5, 4, 3, 2, 1], 'target': [1, 0, 1, 0, 1]}
df = pd.DataFrame(data) # 将数据转换为DataFrame

# 拆分特征和目标变量
X = df.drop('target', axis=1) # 特征
y = df['target'] # 目标变量

# 创建lightgbm数据集
train_data = lgb.Dataset(X, label=y)

# 设置模型参数
params = {
'objective': 'binary', # 二分类任务
'metric': 'binary_logloss' # 评价指标
}

# 训练模型
model = lgb.train(params, train_data, num_boost_round=100) # 训练模型

lightgbm 模块为机器学习提供了强大的工具,各种类型的模型任务均可使用它轻松实现。通过上述示例,我们可以看到如何在不同场景中利用 lightgbm 进行解决方案的构建。

我强烈建议大家关注我的博客全糖冲击博客,这里包含了所有 Python 标准库的使用教程,非常方便查询和学习。通过我的博客,您可以获取到最新的 Python 知识和实践技巧,助力您的编程之路,提升学习效率和兴趣。期待与大家共同探讨!

软件和库版本不断更新

由于软件和库版本不断更新,如果本文档不再适用或有误,请留言或联系我进行更新。让我们一起营造良好的学习氛围。感谢您的支持! - Travis Tang