lightgbm学习(持续更新)

本文介绍了使用LightGBM进行比赛时的一些关键技巧,包括类别特征处理、GOSS采样策略及与XGBoost的不同之处。对于类别特征,LightGBM采用特定的分区方式而非OneHot编码;GOSS采样策略在提升模型效果的同时需要注意行采样的限制;同时对比了LightGBM与XGBoost在树构建策略、分裂策略和并行处理上的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做比赛用了lightgbm,有很多需要注意的地方。在此把重点记下当做笔记(纯写算法介绍太耗时了)

直接上重点:

1.lightgbm对类别特征的处理是对类别特征进行分成两个区,这样k个特征值就有2^k-1种分区,而不是进行的Onehot,之前看一篇博客好像说Cateboost是进行onehot,但是对值少的类别划为一个类别,就相当于模型帮人做了特征工程,具体没仔细去看。

2.lightgbm用到goss是效果很好的,即使用leaf_wise建树。只要你能控制住过拟合,一般用树深度,叶子个数等,但有一点要注意的是sklearn 的goss不能支持行采样,但是支持列采样。

3.XGBoost和Lightgbm

   a.一个是level_wise,一个是leaf_wise

   b.分裂的时候可以采用父节点减一个子节点的不纯度(应该是xgb里的G^2/H+λ,需待考证)

   c.并行方面有很大不同。



### 关于 LightGBM 的研究内容 LightGBM 是一种基于决策树算法的高效梯度提升框架,具有处理大规模数据的能力。该模型的核心优势在于其独特的 Gradient-based One-Side Sampling (GOSS) 剪枝策略[^1]。这种剪枝方式能够有效减少训练样本数量,在保持精度的同时显著提高计算效率。 在数学基础上,LightGBM 使用直方图算法来加速节点分裂过程中的特征选择,并引入了 Leaf-wise(最佳优先)生长策略替代传统的 Level-wise 生长模式,从而进一步提升了性能表现。 ### 应用场景 LightGBM 广泛应用于多个领域: - **金融风控**:用于信用评分预测、反欺诈检测等; - **广告推荐系统**:优化点击率预估、个性化商品推荐; - **医疗健康**:疾病诊断辅助、药物研发数据分析; - **自然语言处理**:文本分类、情感分析任务中表现出色; 这些应用得益于 LightGBM 对大数据集的良好支持及其高效的并行化能力。 ### 最新进展 近年来,围绕 LightGBM 展开了大量实验性工作与基准测试研究[^3]。研究人员不断探索新的改进方向和技术手段,比如针对特定硬件环境下的性能调优、与其他机器学习库集成的可能性等方面进行了广泛尝试。此外,社区也持续贡献着丰富的插件和扩展功能,使得 LightGBM 成为了当前最流行的开源项目之一。 ```python import lightgbm as lgb from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split # 加载波士顿房价数据集作为示例 data = load_boston() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target) # 创建 LGBM 数据结构 train_data = lgb.Dataset(X_train, label=y_train) test_data = lgb.Dataset(X_test, label=y_test, reference=train_data) # 设置参数 params = { 'boosting_type': 'gbdt', 'objective': 'regression', 'metric': {'l2', 'auc'}, } # 训练模型 bst = lgb.train(params, train_data, valid_sets=[test_data]) # 预测 y_pred = bst.predict(X_test) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值