当前位置: 首页 > news >正文

预测模型及超参数:3.集成学习:[1]LightGBM

        想象你是一位乐队指挥,你的任务是协调乐队中的每位音乐家,以演奏出一场完美的音乐会。每位音乐家(即决策树)擅长不同的乐器或乐章。在指挥过程中,你通过调节各位音乐家演奏的强度(模型参数),让他们共同合作,最终演绎出一场精彩的音乐会。LightGBM 就像这位指挥,通过调节各个“音乐家”(决策树)的表现,合力预测数值型数据。

        LightGBM 是一种基于梯度提升的算法,它通过构建多个决策树来进行回归任务。它的优势在于速度快、内存占用低,尤其适合于处理大型数据集和高维度数据,以下是该模型中所有参数的详细解释:

1. learning_rate(学习率)

  • 作用:控制每棵树对整体模型的贡献程度。
  • 通俗解释
    • 想象乐队每位音乐家的演奏音量。learning_rate 就是你控制每位音乐家音量大小的旋钮。较小的音量(较低的学习率)使得乐队演奏更加和谐,但需要更多的音乐家(决策树)来完成乐曲。较大的音量(较高的学习率)使得乐队演奏更快完成,但可能会错失乐曲中的细节。
  • 取值范围:通常在 0.01 到 0.3 之间。

2. num_leaves(叶子节点数)

  • 作用:决定树的复杂度,影响模型的学习能力。
  • 通俗解释
    • 每个音乐家(决策树)能演奏的乐章数。num_leaves 控制了每个音乐家能演奏的复杂程度。更多的叶子节点意味着更复杂的乐章,但可能导致过拟合。
  • 取值范围:通常在 20 到 150 之间。

3. max_depth(最大深度)

  • 作用:控制树的最大深度。通过限制深度来防止过拟合。
  • 通俗解释
    • 决定每位音乐家能演奏的段落复杂度。较短的乐章(较小的深度)使得演奏更简单化,避免复杂度过高导致混乱。
  • 取值范围:一般在 3 到 12 之间。

4. min_data_in_leaf(叶子节点的最小数据量)

  • 作用:控制每个叶子节点上的最小样本数量。
  • 通俗解释
    • 想象音乐家演奏的每个段落至少需要一定数量的音符(数据),min_data_in_leaf 确保每段演奏具有足够的信息量来避免被误解。
  • 取值范围:一般在 1 到 100 之间。

5. min_sum_hessian_in_leaf(叶子节点的最小 Hessian 和)

  • 作用:控制每个叶子节点的最小 Hessian 和,用于正则化。
  • 通俗解释
    • 这是对音乐家演奏中复杂和谐度的一个控制,确保每段演奏在乐理上的稳定性。
  • 取值范围:一般在 1e-3 到 10.0 之间。

6. bagging_fraction(袋外采样比例)

  • 作用:控制用于每棵树训练的数据比例。
  • 通俗解释
    • 想象在音乐彩排中,你不是每次都让所有音乐家参与,而是让一部分音乐家参与,bagging_fraction 控制了这种参与比例。
  • 取值范围0.5 到 1.0,通常设置为 0.8。

7. bagging_freq(袋外采样频率)

  • 作用:控制执行袋外采样的频率。
  • 通俗解释
    • 指定乐队指挥在乐曲中更换不同音乐家的频率,例如每隔几段乐谱就更换一次。
  • 取值范围1 到 7,通常设置为 1。

8. feature_fraction(特征采样比例)

  • 作用:控制每棵树使用的特征比例。
  • 通俗解释
    • 类似于每位音乐家在每次演奏中只关注一定比例的音符(特征),而不是所有音符,增加演奏的多样性。
  • 取值范围0.5 到 1.0,通常设置为 0.8。

9. lambda_l1(L1 正则化)

  • 作用:对模型施加 L1 正则化,减少特征数量。
  • 通俗解释
    • 通过对某些音乐家演奏的音量进行抑制,保持乐队演奏的简洁性,避免不必要的复杂度。
  • 取值范围0.0 到 1.0

10. lambda_l2(L2 正则化)

  • 作用:对模型施加 L2 正则化,进一步减少特征复杂性。
  • 通俗解释
    • 这是对音乐家演奏音量的另一种控制,确保整体乐曲的和谐性。
  • 取值范围0.0 到 1.0

11. device(计算设备)

  • 作用:指定模型训练时使用的计算设备。
  • 通俗解释
    • 就像是乐队指挥是否使用电子设备辅助指挥。在当前代码中,使用 "cpu" 进行计算。
  • 取值范围:"cpu" 或 "gpu"。

总结

参数名称

通俗解释

作用

取值范围

learning_rate

控制每位音乐家的演奏音量

控制模型的学习步伐

0.01 到 0.3

num_leaves

决定每位音乐家能演奏的乐章数

控制树的复杂度

20 到 150

max_depth

每位音乐家能演奏的段落复杂度

限制树的深度,防止过拟合

3 到 12

min_data_in_leaf

演奏每段乐章所需的最小音符数量

确保每段演奏的信息量

1 到 100

min_sum_hessian_in_leaf

控制演奏复杂度的和谐程度

正则化,确保演奏稳定性

1e-3 到 10.0

bagging_fraction

彩排中参与的音乐家比例

引入随机性,增加模型的多样性

0.5 到 1.0

bagging_freq

更换不同音乐家的频率

控制袋外采样频率

1 到 7

feature_fraction

每位音乐家关注的音符比例

控制每棵树使用的特征比例

0.5 到 1.0

lambda_l1

抑制某些音乐家演奏音量

L1 正则化,减少特征数量

0.0 到 1.0

lambda_l2

控制演奏音量的和谐性

L2 正则化,减少特征复杂性

0.0 到 1.0

相关参数的详细数学公式推导可看

LightGBM简易原理与超参数

http://www.dtcms.com/a/357025.html

相关文章:

  • LangChain实战(三):深入理解Model I/O - Prompts模板
  • 顶会顶刊图像分类的云服务器训练方法
  • 闭包与内存泄漏:深度解析与应对策略
  • Spring boot 启用第二数据源
  • Java全栈工程师的实战面试:从基础到微服务架构
  • 【SOD】目标检测
  • 2025.8.29机械臂实战项目
  • 基于STM32单片机的智能温室控制声光报警系统设计
  • leetcode 461 汉明距离
  • 基于MSRDCN、FEAM与AMSFM的轴承故障诊断MATLAB实现
  • 【工具】开源大屏设计器 自用整理
  • golang接口详细解释
  • websocket的应用
  • 【Spring Cloud Alibaba】前置知识
  • 微信小程序调用蓝牙打印机教程(TSPL命令)
  • Android 14 PMS源码分析
  • Linux-搭建DNS服务器
  • 计算机三级嵌入式填空题——真题库(24)原题附答案速记
  • CMake xcode编译器属性设置技巧
  • JavaScript 数组核心操作实战:最值获取与排序实现(从基础到优化)
  • 线程安全及死锁问题
  • Linux之Docker虚拟化技术(二)
  • Python结构化模式匹配:解析器的革命性升级
  • 大模型 “轻量化” 之战:从千亿参数到端侧部署,AI 如何走进消费电子?
  • 【ACP】2025-最新-疑难题解析-11
  • 机器视觉opencv教程(二):二值化、自适应二值化
  • Partner 类开发:会议参与者可视化控件
  • 经典扫雷游戏实现:从零构建HTML5扫雷游戏
  • 科技大会用了煽情BGM
  • 【技术分享】系统崩溃后产生的CHK文件如何恢复?完整图文教程(附工具推荐)