LightGBM模型
一 节点概述
LightGBM(Light Gradient Boosting Machine)是微软开发的高性能梯度提升框架,属于集成学习中的 Boosting 方法。 它使用直方图算法和叶子优先的生长策略,在保持高准确率的同时大幅提升训练速度。 LightGBM 模型节点接收 数据处理节点 的因子数据进行训练, 输出预测值供 策略节点 使用。
数据流位置
数据源节点→数据处理→AI模型→策略类型→仓位管理→风险控制→交易引擎
✓ 优势
⚡ 训练速度快,推理速度快
内存占用低
特征重要性可解释
支持类别特征,对缺失值鲁棒
适用场景
多因子选币/选股
快速策略验证
因子筛选与重要性分析
横截面排序预测
⚠ 局限性
时序建模能力较弱
需要手动特征工程
对长期时序模式捕捉不足
二 模拟配置
下方是 LightGBM 模型节点的真实配置面板,你可以直接操作体验各个配置项的功能。配置面板包含:预测值列名、任务类型、参数配置模式(自适应模式 / 高级参数配置)。
LightGBM模型配置
模型输出的预测值列名称
2.1 预测值列名
设置模型输出的预测值列名称什么是预测值列名?
模型训练完成后,会在数据中新增一列用于存储预测结果。 后续的 策略节点 可以通过这个列名引用模型的预测值。 默认列名为
pred。提示:如果工作流中有多个 AI 模型节点,建议为每个模型设置不同的预测列名(如
pred_lgb、pred_lstm),以便在策略中区分使用。2.2 任务类型
选择模型的训练目标和损失函数什么是任务类型?
任务类型决定了模型如何学习和输出预测值。不同的任务类型使用不同的损失函数,选择合适的任务类型对模型效果至关重要。 系统支持三种任务类型:
排序(Ranking)、二分类(Binary)、回归(Regression)。 LightGBM 和 LSTM 默认为二分类,Transformer 默认为排序。⚡ 快速选择指南
| 维度 | 排序 (Ranking) | 二分类 (Binary) ⭐ | 回归 (Regression) |
|---|---|---|---|
| 核心目标 | 学习相对排序 | 判断涨跌方向 | 预测精确收益率 |
| 噪声鲁棒性 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
| 泛化能力 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐ |
| 极端值敏感度 | 中等 | 低(天然免疫) | 高 |
| 加密货币适用性 | 适合多币种选币 | 最适合单币择时 | 适合仓位管理辅助 |
| 典型策略 | 多空对冲 / 选币轮动 | 趋势择时 / 网格增强 | 动态仓位 / 风险控制 |
推荐:加密货币市场波动剧烈且存在大量极端行情,二分类通过将连续收益率坍缩为涨/跌方向, 天然过滤了尾部噪声,方向准确率 > 收益幅度精度,因此默认推荐二分类。
2.2.1 排序(Ranking)
学习样本间的相对顺序,适合多因子选币排序任务不关心预测值的绝对大小,而是学习样本间的相对排序关系。 模型的目标是让收益率高的样本排在前面,收益率低的样本排在后面。 在加密货币多币种量化场景中,排序任务可以从数十个交易对中筛选出最具上涨潜力的标的, 是截面选币策略的核心驱动。
| 属性 | 说明 |
|---|---|
| Label 要求 | 收益率等连续值(如 shift(close, -5) / shift(open, -1) - 1) |
| 输出范围 | 任意实数(排序分数,值越大排名越靠前) |
| 适用场景 | 多因子选币、截面排序、多空对冲 |
| 前端字段 | taskType: "ranking" |
排序模式(rankingMode)
选择 Ranking 任务后,节点面板会出现排序模式选项,决定模型优化的重点方向:
均衡 (balanced)
同时优化头尾排序
→ 多空对冲策略
头部 (head)
重点优化前几名
→ 纯做多策略
尾部 (tail)
重点优化后几名
→ 纯做空策略
💡 加密货币场景提示:排序任务需要多个交易对的截面数据(如同时输入 BTC、ETH、SOL 等多币种特征), 模型在同一时间截面上比较各币种的相对强弱。若只交易单一币种,建议选择二分类任务。
2.2.2 二分类(Binary)⭐ 推荐
预测涨跌方向,加密货币择时首选二分类任务将预测问题转化为"涨或跌"的方向判断。模型输出有符号置信度(-1~1), 正值表示看涨、负值表示看跌,绝对值越大置信度越高。 在加密货币市场中,由于波动率极高(BTC 日波动 3-10% 常见),精确预测收益率几乎不可能, 但判断方向的信噪比远高于预测幅度,因此二分类是最实用的任务类型。
| 属性 | 说明 |
|---|---|
| Label 要求 | 支持布尔值或连续收益率(如 shift(close, -5) / shift(open, -1) - 1);连续值会自动按 > 0 转换为 0/1 |
| 输出范围 | -1 ~ 1(有符号置信度,0.2 对应 60% 概率) |
| 适用场景 | 涨跌预测、择时信号、趋势判断 |
| 前端字段 | taskType: "binary"(系统默认值) |
Label 定义示例:
label = shift(close, -5) / shift(open, -1) - 1 表示"以下根K线开盘价买入,5期后卖出的收益率"。 引擎自动将收益率 > 0 转为正类(1),≤ 0 转为负类(0)。📊 置信度与概率对照表
二分类输出为有符号置信度,范围 -1 ~ 1,转换公式:
置信度 = 2 × 概率 - 1| 概率 | 30% | 40% | 50% | 55% | 60% |
|---|---|---|---|---|---|
| 置信度 | -0.4 | -0.2 | 0 | 0.1 | 0.2 |
策略示例:
pred > 0.2 开多(60%看涨),pred < -0.2 平多(仅40%看涨)🎯 为什么加密货币推荐二分类?
• 标签空间压缩:将连续收益率坍缩为 {0, 1},极端涨跌(±20%)不再干扰损失函数
• 方向 > 幅度:在高波动市场中,判对方向即可获利,无需预测精确收益
• 天然正则化:分类边界比回归拟合更平滑,不易过拟合到个别异常K线
• 置信度可控:输出的概率值可以直接作为信号强度,用于动态调整仓位
2.2.3 回归(Regression)
预测具体收益率数值,关注绝对准确性回归任务要求模型预测精确的收益率数值。 与排序任务不同,回归任务关注预测值与真实值的绝对误差。 在加密货币市场中,由于极端行情频繁(如闪崩、暴涨),回归模型容易被异常值主导训练过程, 泛化效果通常不如二分类。但回归输出的收益率数值有明确的物理含义, 适合作为仓位管理和风控的辅助信号。
| 属性 | 说明 |
|---|---|
| Label 要求 | 收益率连续值(如 shift(close, -5) / shift(open, -1) - 1) |
| 输出范围 | 任意实数(预测的收益率) |
| 适用场景 | 仓位计算、风险评估、预期收益校准 |
| 前端字段 | taskType: "regression" |
✓ 优点
输出有明确物理含义,可直接用于仓位计算和收益预期评估
2.3 参数配置模式
选择系统自适应或手动配置参数什么是参数配置模式?
系统支持两种配置模式:
自适应模式(系统根据数据规模自动调参)和高级参数配置(手动设置所有模型参数)。 默认为自适应模式,适合新手用户和快速验证策略。2.3.1 自适应模式
系统根据数据规模自动选择最优参数自适应模式下,系统会根据训练数据的规模(样本数、特征数)自动计算最优的模型参数。适合新手用户和快速策略验证,无需深入了解 LightGBM 的各种参数含义。
✓ 优点
无需调参经验
快速开始训练
降低过拟合风险
⚠ 局限
无法精细控制模型
可能非最优参数
自适应参数范围
系统会在以下范围内自动选择参数:学习率 0.03~0.07,最大深度 4~8,叶子节点数 18~30, 子节点最小样本数 38~90,训练轮数 120~280。
2.3.2 高级参数配置
手动配置所有模型参数,实现精细调优选择高级参数配置后,将显示完整的参数配置面板,包括模型架构、训练参数和正则化三个部分。 适合有经验的用户进行精细调优。
2.3.2.1 模型架构
控制决策树的结构复杂度。树越深、叶子越多,模型越复杂,但更容易过拟合。 留空表示由系统自适应计算。
| 参数 | 取值范围 | 自适应范围 | 说明 |
|---|---|---|---|
| 最大深度 | 1 ~ 15 | 4 ~ 8 | 树的最大深度 |
| 叶子节点数 | 8 ~ 256 | 18 ~ 30 | 每棵树最大叶子数 |
| 子节点最小样本数 | 5 ~ 2000 | 38 ~ 90 | 叶子节点所需最少样本数 |
数据量小(<10万):maxDepth: 3-5, numLeaves: 8-16
数据量大(>100万):maxDepth: 6-10, numLeaves: 32-64
2.3.2.2 训练参数
控制模型训练过程。学习率越小需要更多训练轮数,但通常效果更好。
| 参数 | 默认值 | 取值范围 | 说明 |
|---|---|---|---|
| 训练轮数 | 自适应 | 1 ~ 1000 | Boosting 迭代次数 |
| 学习率 | 自适应 | 0.001 ~ 0.5 | 每棵树的权重系数 |
| 验证集比例 | 0.2 | 0 ~ 0.5 | 用于早停,为0时跳过 |
| 早停容忍轮数 | 10 | 1 ~ 100 | N轮无改善则停止 |
早停机制:当验证集指标连续多轮没有改善时,训练自动终止,防止过拟合。
2.3.2.3 正则化
防止模型过拟合。Dropout 值越大,正则化越强,模型越简单。 留空表示由系统自适应计算。
| 参数 | 取值范围 | 自适应范围 | 说明 |
|---|---|---|---|
| 样本 Dropout | 0 ~ 0.5 | 0.05 ~ 0.30 | 随机丢弃的数据比例 |
| 特征 Dropout | 0 ~ 0.5 | 0 ~ 0.20 | 随机丢弃的特征比例 |
过拟合:训练好验证差 → 增大 Dropout
欠拟合:都差 → 减小 Dropout 或增大模型
三 输出数据结构
LightGBM 模型节点在输入数据的基础上添加预测值列,输出结构如下:
| 列名 | 类型 | 来源 | 说明 |
|---|---|---|---|
| datetime | datetime | 传递 | 时间戳 |
| symbol | string | 传递 | 交易对 |
| open/high/low/close/volume | float | 传递 | 原始OHLCV数据 |
| [因子列...] | float | 传递 | 数据处理节点计算的因子 |
pred | float | 新增 | 模型预测值(列名由 predictionColumn 配置决定) |
预测值含义(按任务类型)
Ranking
排序分数,值越大排名越靠前
Binary
上涨概率,范围 -1~1
Regression
预测收益率,可正可负
四 常见问题
Q: 自适应模式和高级模式怎么选?
A: 建议新手和快速验证阶段使用自适应模式,系统会根据数据规模自动选择合适的参数。 当需要精细调优或有明确的参数目标时,切换到高级参数配置模式。
Q: 任务类型 Ranking 和 Regression 有什么区别?
A: Ranking 关注样本间的相对排序,适合多因子选币场景,目标是选出最好的标的;Regression 关注预测值的绝对准确性,适合需要精确收益率预测的场景。 实践中,选币场景推荐使用 Ranking。
Q: 训练轮数设置多少合适?
A: 建议设置较大的
epochs(如 200-500),配合 earlyStopPatience(如 20-30)使用。 系统会在验证集指标不再改善时自动停止,避免过拟合。Q: 如何判断模型是否过拟合?
A: 观察训练日志中的训练集和验证集指标。如果训练集效果很好但验证集很差,说明过拟合了。 解决方法:增大正则化参数(sampleDropout、featureDropout),减小模型复杂度(maxDepth、numLeaves),增大子节点最小样本数(minChildSamples),或增加训练数据。
Q: 预测值列名可以自定义吗?
A: 可以,通过
predictionColumn 参数设置。默认为 "pred"。 在后续的策略节点中,可以通过这个列名引用模型的预测结果。