快速掌握 LightGBM 必备知识点,十问十答

news/2024/10/30 19:36:12/

文章目录

      • 1. 什么是LightGBM?
      • 2. LightGBM与XGBoost的区别是什么?
      • 3. 如何安装LightGBM?
      • 技术交流
      • 4. 如何使用LightGBM进行模型训练?
      • 5. 如何使用LightGBM进行模型预测?
      • 6. LightGBM如何处理缺失值?
      • 7. LightGBM中如何设置类别特征?
      • 8. LightGBM如何调参?
      • 9. 如何使用LightGBM进行交叉验证?
      • 10. LightGBM支持的损失函数有哪些?

1. 什么是LightGBM?

LightGBM(Light Gradient Boosting Machine)是一种梯度提升树(Gradient Boosting Decision Tree, GBDT)算法的高效实现。它由微软开发,主要应用于分类、回归和排序任务。

2. LightGBM与XGBoost的区别是什么?

LightGBM与XGBoost都是基于GBDT的高效实现,主要的区别在于:

  • LightGBM使用Histogram-based算法,减少内存使用和提高计算速度。

  • LightGBM采用带深度限制的Leaf-wise生长策略,而XGBoost采用Level-wise生长策略。Leaf-wise策略可以降低模型过拟合的风险,但可能导致不平衡的树结构。

  • LightGBM支持类别特征,无需单独进行独热编码。

3. 如何安装LightGBM?

使用pip安装:

pip install lightgbm

或者从源代码编译安装:

git clone --recursive https://github.com/microsoft/LightGBM
cd LightGBM
mkdir build
cd build
cmake ..
make -j$(nproc)
make install

技术交流

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

好的文章离不开粉丝的分享、推荐,资料干货、资料分享、数据、技术交流提升,均可加交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、添加微信号:dkl88191,备注:来自CSDN + 机器学习
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:机器学习

4. 如何使用LightGBM进行模型训练?

首先,需要导入lightgbm库并准备数据:

import lightgbm as lgb
import numpy as np
import pandas as pd# 加载数据
train_data = lgb.Dataset(X_train, label=y_train)
valid_data = lgb.Dataset(X_valid, label=y_valid, reference=train_data)

接下来,设置模型参数:

params = {'boosting_type': 'gbdt','objective': 'binary','metric': 'binary_logloss','num_leaves': 31,'learning_rate': 0.05,'feature_fraction': 0.9,'bagging_fraction': 0.8,'bagging_freq': 5,'verbose': 0
}

最后,训练模型:

gbm = lgb.train(params, train_data, num_boost_round=20, valid_sets=valid_data, early_stopping_rounds=5)

5. 如何使用LightGBM进行模型预测?

y_pred = gbm.predict(X_test, num_iteration=gbm.best_iteration)

6. LightGBM如何处理缺失值?

LightGBM可以自动处理缺失值。在分裂节点时,LightGBM会将缺失值分到增益最大的一侧。

7. LightGBM中如何设置类别特征?

在创建数据集时,可以通过categorical_feature参数设置类别特征:

train_data = lgb.Dataset(X_train, label=y_train, categorical_feature=['col1', 'col2'])

8. LightGBM如何调参?

主要的调参参数包括:

  • num_leaves:叶子节点数量,决定了树的复杂度。

  • min_data_in_leaf:叶子节点最小样本数,避免过拟合。

  • max_depth:树的最大深度。

  • learning_rate:学习率。

  • feature_fraction:特征采样比例。

  • bagging_fraction:样本采样比例。

  • bagging_freq:进行Bagging的频率。

  • lambda_l1lambda_l2:L1和L2正则化。

9. 如何使用LightGBM进行交叉验证?

使用lgb.cv()函数进行交叉验证:

cv_results = lgb.cv(params, train_data, num_boost_round=100, nfold=5, stratified=False, shuffle=True, metrics='rmse', early_stopping_rounds=10, verbose_eval=50, show_stdv=True, seed=0)

10. LightGBM支持的损失函数有哪些?

主要损失函数包括:

  • 回归任务 - l2: 均方误差(默认)

  • l1: 平均绝对误差

  • huber: Huber损失

  • fair: Fair损失

  • quantile: 分位数回归损失

  • mape: 平均绝对百分比误差

  • poisson: 泊松回归损失

  • gamma: Gamma回归损失

  • tweedie: Tweedie回归损失

  • 二分类任务

  • binary: 二进制对数损失(默认)

  • cross_entropy: 交叉熵损失

  • 多分类任务

  • multiclass: 多类别对数损失(默认)

  • multiclassova: 多类别单一二分类器损失

  • 排序任务

  • lambdarank: LambdaMART排序损失


http://www.ppmy.cn/news/203939.html

相关文章

ClickHouse的join优化

概要: ClickHouse 最为擅长的领域是一个大宽表来进行查询,多表 JOIN 时Clickhouse 性能表现不佳。 CK执行模式 第一阶段,Coordinator 收到查询后将请求发送给对应的 worker 节点;第二阶段,Coordinator 收到各个 work…

计算机视觉实习生面经(百度 | 地平线 | 小米 | 旷视 | 快手)

计算机视觉实习生面经 1. 百度(计算机视觉实习生,ACG,自动驾驶)——2021/05一面二面 2. 地平线(感知算法实习生,北京)——2021/083. 小米(计算机视觉实习生,AI Lab&#…

Linux题库100道

cron 后台常驻程序 (daemon) 用于:(D) A. 负责文件在网络中的共享B. 管理打印子系统C. 跟踪管理系统信息和错误D. 管理系统日常任务的调度在大多数Linux发行版本中,以下哪个属于块设备 (block devices) ?(B) A. 串行口B. 硬盘C. 虚拟终端D.…

学计算机专业选啥价位的笔记本,大学生买笔记本电脑要怎么选?这些电脑值得考虑,千万别选错了!...

办公笔记本。 办公与游戏 对于办公游戏都有要求的朋友来说,这样的电脑就得要CPU、显卡、内存、硬盘都要充分考虑,CPU要高,显卡也要高,内存也要高,硬盘容量也要大,它的价格通常都是在6000以上,推…

r720支持多少频率的内存吗_高频内存对游戏帧数影响大吗?2400MHz和3200MHz频率内存对比实测...

内存频率对电脑性能无疑是有一定的影响,但是在日常使用根本也发现不了明显变化。我们知道,目前DDR4主流内存频率通常是2400MHz或者2666MHz,在主板支持更高内存频率的情况下,如果搭配高频内存是否对游戏帧数有所提升?该…

学习神经网络(深度学习)电脑的配置要求

学习神经网络(深度学习)电脑的配置要求 个人电脑配置与使用感受(电脑小白) 我目前所使用的电脑的配置是 (1)CPU:i5-9300H (2)显卡(GPU)&#xf…

3d图形设计计算机配置,3d建模电脑配置要求高吗?这样配电脑不多花一分钱

3d建模电脑配置要求高吗?做3d建模笔记本配置价位大概要花多少呢?本期,模型云就为你您整理了这些3d建模电脑配置详细清单,跟着我们来一起看看这些适合做3d建模的电脑配置吧! 3d建模电脑配置要求高吗? 影响3d建模电脑配置要求的主要还是看你使用的建模软…

对于一个程序员来说,电脑的内存需要多大?

1、 程序员电脑内存有多大内存够用足够了,纯写代码的编程对电脑要求不高,尤其对显卡几乎没有要求,一般编程可能开的任务窗口比较多,所以只要cpu和内存大点就可以了一般来说,处理器确实比显卡来得重要一些,因…