阶段8机器学习基础●●●●●

特征与标签:把选股问题翻译成机器学习的语言

我的掌握程度:
q-702精讲

先掌握这个答案

翻译规则:特征(X)=因子矩阵——每行=(某日,某股),每列=一个因子值(阶段5的成果直接接入);标签(y)=要预测的目标,主流选择:①未来N日收益(回归);②未来收益的横截面分位数/涨跌方向(分类,更稳健);③风险调整收益(超额/波动)。标签三陷阱:N太短噪声大、N太长样本重叠严重(相邻标签共享未来,有效样本数骤减);不含超额的标签让模型学成「预测大盘」(择时任务混入选股任务);用对数还是简单收益要与损失函数匹配。样本有效性:5000股×10年=1200万行的表面繁荣,实际独立信息量小得多(横截面相关+时间重叠)。

先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。

从理解到使用

先赢过一个简单基线

固定数据与验证,比较等权、线性模型或朴素预测,再评估复杂模型的边际收益。记录重训练频率、预测延迟、漂移和费用;更高拟合分数不等于更高净收益。

本阶段实战方法 · 把验证流程当作模型的一部分

训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。

  1. 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
  2. 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
  3. 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。

使用边界

  • 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
  • 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
ML模型不认识「股票」也不认识「涨跌」——它只认识一张数值表:每行一个样本,一些列是输入(特征X),一列是输出(标签y)。让模型帮你选股的第一步,是把整个选股问题严谨地翻译成这张表。翻译的每个决定(标签怎么定、样本怎么取)都直接决定模型学到什么。
由此产生的问题
特征和标签的金融化定义是什么?标签设计的常见选择与陷阱?样本的「有效性」怎么评估?
核心概念
翻译规则:特征(X)=因子矩阵——每行=(某日,某股),每列=一个因子值(阶段5的成果直接接入);标签(y)=要预测的目标,主流选择:①未来N日收益(回归);②未来收益的横截面分位数/涨跌方向(分类,更稳健);③风险调整收益(超额/波动)。标签三陷阱:N太短噪声大、N太长样本重叠严重(相邻标签共享未来,有效样本数骤减);不含超额的标签让模型学成「预测大盘」(择时任务混入选股任务);用对数还是简单收益要与损失函数匹配。样本有效性:5000股×10年=1200万行的表面繁荣,实际独立信息量小得多(横截面相关+时间重叠)。
为什么需要它
①标签即任务定义:标签定为「未来5日收益」模型就学短线,「未来60日」学波段——研究意图必须先于代码;②重叠标签是金融ML特有的大坑:相邻N日标签共享未来信息,随机交叉验证的「高分」全是泄漏(时序CV专门治它,后续题目);③特征质量大于模型复杂度(Kaggle十年实证):花在特征工程上的一小时胜过调参一天。
实际应用场景
标准样本表结构:index=(date,code),columns=[factor1..factorN, label];构造代码:未来收益=prices.shift(-N)/prices-1——注意负号shift是「向未来取」,训练时必须与验证时间严格切分。
与之前知识的联系
阶段5的因子库成为特征列;阶段3的回归/分类概念在此落地;q-502的前视防御延伸到标签端(标签天然「在未来」)。下一题进入模型选择与验证设计。
⚠ 常见误解
  • 标签用未来N日收益就够了:N的选择是「信号半衰期」与「样本有效性」的权衡,需要实验而非默认
  • 样本越多越好:重叠+相关让有效样本远小于表面数;盲目堆数据不如改善特征与验证
  • 标签可以直接用当日收益:那是「用今天预测今天」——最粗暴的前视(q-502的ML版)

🤖 AI导师

导师会先检查你的前置知识(因子、监督学习概念、超额收益),再用案例、公式和代码帮助理解。此功能需要先启用服务。