预测模型及超参数: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简易原理与超参数