机器学习选股,最先要防的不是模型太简单,而是训练时偷看了未来。

机器学习选股实战

约 11 分钟1 个动手实验4 道小题

学完你能说清楚先按时间切数据,再谈模型、指标和收益。

01学完这一课,你能做到什么

学完这一课,你应该能:

  1. 用决策树和提升树表达“满足多个条件才成立”的选股关系;
  2. 按时间顺序设计训练、验证、测试和滚动重训;
  3. 区分准确率、AUC 和最终组合收益;
  4. 设计下一日收益、未来多日收益、和截面排名标签;
  5. 检查调参、特征重要性、监控和交易约束。

本课的核心顺序是:先定义任务,再检查时间和标签,最后才选择模型。

机器学习选股的检查顺序
  1. 1任务预测什么
  2. 2时间何时能知道
  3. 3标签如何定义
  4. 4模型怎样学习
  5. 5组合能否交易

02树模型:把条件组合起来

决策树像一串有条件的判断:先看 是否小于 15,再看 是否大于 0,另一条路径可能改看 。它能表达“只有在这种条件下才成立”的组合关系。这里的阈值只是结构示意,不是已经验证的交易规则。

树的分叉不是抛硬币,而是算法根据损失和数据寻找划分。XGBoost、LightGBM 是梯度提升树框架,会组合多棵树做分类或回归。它们能学习关系,但仍会,也不会自动理解新事件。

更新频率、训练样本、模型版本和上线后的监控,都要提前写进流程。

一句话记住树模型会学条件组合,不会自动消除过拟合。

03梯度与学习率:模型怎样一步步改错

把损失想成山地高度。梯度给出局部最陡的上升方向,优化通常沿负梯度移动;学习率决定每一步走多远。步子太大可能不稳定,太小则训练很慢。

提升树会让后面的树利用损失信息修正当前预测。不要把每个树节点都想成线性模型权重,也不要从比喻推断某个算法一定会自动调整步长。初学者先检查输入、损失、迭代次数和验证结果。

一句话记住学习率控制步长,不能替代时间一致的验证。

04先把下一日涨跌写成可检查的任务

可以先定义:明日收盘价高于今日收盘价记为 1,否则记为 0。平盘归入 0 是这个任务的一部分;如果单独设平盘类别,就已经换了任务。

输入可以包含技术、基本面特征和申万二级行业。行业分类要固定版本:一级可能太粗,三级可能样本不足,不能混用。

一种时间一致的起点是:用过去 120 个交易日训练,预测下一日,并向前滚动;每 20 个交易日重训一次,其余日期沿用上次模型。重训时要保存训练窗口、模型版本和逐日预测。若标签是未来多日收益,窗口末端还要留出标签成熟时间。

股票涨跌可能不平衡,要打印类别数量并和简单基准比较。类别权重只是改变损失贡献,重采样才会改变抽样频率,二者不能混为一谈。

滚动预测的一次循环
  1. 1历史窗口120 日
  2. 2训练标签已成熟
  3. 3预测下一日
  4. 4记录模型与结果
  5. 5重训每 20 日
动手试试

训练集和测试集会泄漏未来吗

逐张检查机器学习选股中的数据划分、标签成熟时间和调参边界。

SCENARIO JUDGE

下面的训练集、验证集和测试集划分,哪一种使用了未来数据或破坏了时间顺序?

第 1 / 8 张
情景 01

过去 120 日训练,预测下一日

每次预测日 t 时,只用 t 之前已经完成且标签已经成熟的 120 个交易日训练;模型每 20 个交易日重训一次,其余日期沿用上次模型。

05准确率和 AUC:先看模型回答了什么

准确率是预测类别正确的比例,会受到分类阈值和类别比例影响。AUC 看模型把正样本排在负样本前面的能力,不依赖某一个阈值;随机排序的参考值是 0.5,但有限样本会波动。

比如某只股票的测试 AUC 约为 0.487,接近没有有效排序信息。这个结果可以如实保留,不能为了得到赚钱结论就删除失败样本。AUC 低于 0.5 也不能看完测试结果后直接反向交易并把它称为策略。

训练损失很好、验证损失明显更差,提示过拟合或分布变化;两者都差,则要检查任务、数据和模型容量。还应在更晚的 OOT 区间检查稳定性。最终组合收益还受收益幅度、持有方式、费用和交易约束影响,不能由 AUC 单独推出。

三个层次的结果
模型指标

准确率 / AUC

检查分类和排序能力。

投资结果

净收益 / 回撤

还要加入持有、成本和交易规则。

一句话记住AUC 好不等于组合一定赚钱。

06比较 XGBoost 和 LightGBM:同条件实测

比较两个模型时,固定相同特征、标签、时间区间和评估口径。不要把“更快”或“更省内存”的经验数字当成所有环境都成立的规格,应该在自己的数据和版本上测量。

特征重要性只能说明模型使用了哪些输入,不能证明因果。可以把单因子检验、模型重要性和去掉一组特征后的对照实验放在一起看。

LSTM 和 Transformer 也能研究序列与注意力,但不保证优于树模型。因子少仍可能过拟合,因子多也不等于更强。个人研究可以先用少量因子和简单模型,机构研究再按数据、算力和验证结果投入。

一句话记住模型比较要固定条件,速度经验要本地实测。

07有限调参:把搜索边界提前写好

可以为迭代轮数、学习率和叶子数设定有限候选,例如 200/300 轮、0.05/0.02、31/21;也可以用 Optuna 做约 50 次搜索。数字是实验起点,不是固定答案。

正确流程是:先固定训练、验证和最终测试区间,再固定搜索空间和预算;训练后只用验证指标选配置,最后用事先保留的测试集做一次最终评估。时间序列交叉验证应按先后顺序,标签或窗口可能重叠时要留 gap。

搜索越多,越容易偶然迎合验证集。数据质量、标签和泄漏检查,通常比一开始大规模调参更重要。

调参与测试的边界
  1. 1训练集拟合模型
  2. 2验证集选配置
  3. 3冻结不再改规则
  4. 4测试集最后一次评估

一句话记住测试集只在配置冻结后使用。

08重新设计标签,可能比换模型更重要

可以预测未来 5 日或 20 日收益,也可以预测相对沪深 300、中证 500 等基准的超额收益。还可以按某个日期的未来收益排名,把前 30% 标为正类、后 30% 标为负类,中间 40% 暂不用于二分类。

“未来一个月是否曾达到当前价上方 10%”和“未来一个月期末收盘收益”不是同一个标签;触及过目标也不等于实际能成交。更长期限会减少样本,也可能遇到结构变化,不天然更可靠。

风险调整目标可以结合收益和波动;信息比率目标关注超额收益相对跟踪误差。熊市里跑赢基准仍可能绝对亏损,所以目标名称不能替代结果解释。

标签的三种方向

收益

预测未来窗口涨跌或收益。

相对

预测相对基准的超额表现。

排名

预测截面中哪些股票更靠前。

09多目标融合:先统一尺度,再谈权重

收益模型偏好上涨幅度,风险调整模型偏好更平稳的路径,信息比率模型关注相对基准表现。它们的原始单位不同,不能把百分比和比率直接平均。

一种做法是先把每个目标变成同一截面的排名分数,再按预设权重融合。假设三项排名分数是 0.6、0.9、0.85,等权均值为 (0.6 + 0.9 + 0.85) ÷ 3 ≈ 0.783。若按综合得分取前 10%,还要验证、集中度和成本。

多个模型可能使用同一批数据并犯相同的错,不会自动产生分散。要分别报告单模型、融合模型和简单基准。

融合前先统一尺度

综合分数 = (0.6 + 0.9 + 0.85) ÷ 3 ≈ 0.783

这里只是等权示意,实际权重要在实验前定义。

一句话记住不同单位的目标不能直接平均。

10上线后:监控输入、预测和标签成熟结果

上线后要监控输入分布、缺失比例、预测分布、类别校准,以及标签成熟后的准确率和 AUC。PSI、KS 都可以作为监控方向,但不能只看一个阈值就宣布模型安全。

出现退化时,先区分数据异常、行情变化和流程故障,再决定重训、降级或停用。新闻和政策事件可以作为因子,但必须记录时间戳、来源和处理延迟,不能让语言模型凭空生成价格因果。

树模型通常可以先在本机 CPU 上运行。是否使用云、GPU、CUDA 或低延迟 C++/FPGA 系统,应由实测耗时、内存和业务延迟决定,不要把个人配置当成当前报价或最低要求。

一句话记住监控先找退化原因,再决定是否重训。

11动手任务:把一次选股实验做成可审阅记录

先对自选股票做单因子检验,再用同一时间拆分比较逻辑回归、XGBoost 和 LightGBM。可以从 120 日窗口、20 日重训开始,保存失败日期和无效结果。

然后只改变一种标签,例如把下一日涨跌改成未来 20 日收益,记录任务变化。交付物至少包括:数据字典、标签公式、滚动窗口、分类基准、逐日预测、AUC、准确率、概率检查和扣成本后的组合结果。

调参记录要写搜索次数、空间和验证集;最终测试不能反复拿来挑参数。若没有完整代码、数据和权重,只能交付“新实现与简化实验”的差异清单,不能把未运行的收益填写进去。

一句话记住实验记录要能回答数据何时可用、结果如何得到。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01哪种划分最容易把未来信息带进训练?
02AUC 主要衡量什么?
03未来 20 日收益标签在重训时最重要的检查是什么?
04多个目标融合前应先做什么?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · 机器学习选股实战机器学习选股最先检查什么?

先检查标签、时间切分和数据是否在决策时可用,再比较模型和收益。

  • 训练不能看未来
  • AUC不等于收益
  • 测试集最后使用
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01先定义预测任务和标签,再按时间切分训练、验证与测试。
  2. 02标签必须在训练时已经成熟,未来多日标签要留出间隔。
  3. 03准确率和 AUC 是模型指标,组合收益还要加入持有、成本和交易约束。
  4. 04有限调参要冻结测试集;搜索越多,越要警惕迎合验证集。
  5. 05目标设计、数据质量和监控,往往比盲目更换复杂模型更重要。
完成这一课

完成这一课

读完讲义、动手做一次实验、答对小题,这一课就算学完了。

  • 读完讲义
  • 完成一轮时间划分判断
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定教学样本

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。