LightGBM(LGB)

转载自littlemichelle

LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。

背景

常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。

LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。

原生形式使用lightgbm(import lightgbm as lgb)

import lightgbm as lgb
from sklearn.metrics import mean_squared_error
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
 
# 加载数据
iris = load_iris()
data = iris.data
target = iris.target
 
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(data, target, test_size=0.2)
print("Train data length:", len(X_train))
print("Test data length:", len(X_test))
 
# 转换为Dataset数据格式
lgb_train = lgb.Dataset(X_train, y_train)
lgb_eval = lgb.Dataset(X_test, y_test, reference=lgb_train)
 
# 参数
params = {
   
   
    'task': 'train',
    'boosting_type': 'gbdt',  # 设置提升类型
    'objective': 'regression',  # 目标函数
    'metric': {
   
   'l2', 'auc'},  # 评估函数
    'num_leaves': 31,  # 叶子节点数
    'learning_rate': 0.05,  # 学习速率
    'feature_fraction': 0.9,  # 建树的特征选择比例
    'bagging_fraction': 0.8
### 导入和使用 LightGBM 库 为了在 Python 中导入并使用 `lightgbm` 库,需先确保该库已安装。如果尚未安装,则可以通过 pip 安装工具来完成这一操作。对于某些环境配置,可能遇到权限或路径设置方面的问题;此时可以考虑创建虚拟环境以隔离依赖关系。 #### 创建虚拟环境与安装 LightGBM 针对不同操作系统平台,创建虚拟环境的方法略有差异: - **Linux 或 macOS** 使用以下命令创建名为 `myenv` 的新虚拟环境,并激活它: ```bash python3 -m venv myenv source myenv/bin/activate ``` - **Windows** 对于 Windows 用户来说,创建和激活虚拟环境的方式稍有不同: ```cmd py -m venv myenv .\myenv\Scripts\Activate.ps1 ``` 一旦成功激活了新的虚拟环境,在此环境中执行包管理器指令不会影响全局 Python 设置。接下来就可以安全地通过 pip 来安装所需的软件包而不必担心与其他项目发生冲突。 要安装最新版本的 LightGBM 可以运行下面这条简单的命令: ```bash pip install lightgbm ``` 这一步骤会自动下载并安装 LightGBM 和其所有必要的依赖项到当前活跃的虚拟环境中去[^2]。 #### 在 Python 脚本里加载 LightGBM 并构建模型实例 当完成了上述准备工作之后,便可以在编写 Python 程序时轻松引入 LightGBM 模块来进行机器学习任务开发工作了。这里给出一段基础代码片段作为示范用途: ```python import lightgbm as lgb from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # 加载数据集 data = load_boston() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2) # 构建训练使用的 Dataset 数据结构对象 train_data = lgb.Dataset(X_train, label=y_train) # 参数设定 params = { 'objective': 'regression', 'metric': {'l2', 'rmse'}, } # 训练模型 bst = lgb.train(params=params, train_set=train_data, num_boost_round=100) # 预测测试集上的目标变量值 y_pred = bst.predict(X_test) # 输出均方误差评估指标结果 print(f'Mean Squared Error: {mean_squared_error(y_test, y_pred)}') ``` 这段程序展示了如何利用 LightGBM 实现一个基本回归分析案例的过程——从准备数据、定义参数直到最终得到预测性能评价得分为止[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值