从回归到分类:目标形态如何改变模型行为
我的掌握程度:
先掌握这个答案
行为差异三点:①损失函数:回归(MSE)惩罚大错——极端日主导训练;分类(交叉熵)只看对错排序——对异常值免疫(q-240的rank思想);②噪声敏感:收益标签的幅度噪声大(±3σ的日子把回归模型带偏);分类把连续目标二值化=有损降噪——代价是丢掉幅度信息;③输出消费:回归输出直接当因子rank;分类输出概率——转成「预测跑赢概率」因子(与回归因子相关性常<0.8,可组合)。选择规则:下游需要幅度(风险预算、精确权重)→回归;只要方向与相对强弱(选股TopN)→分类或分位回归更稳;极端行情频繁的样本(加密/A股个股)→分类的抗噪性物有所值。混合路线:分类概率×回归幅度的加权——两个模型的输出做二次合成(简单版stacking)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
相关性不能证明预测力
说明横截面还是时间序列、Pearson还是Spearman、样本窗口与滞后方向。非平稳序列可能产生伪回归;回归系数或高相关既不自动证明因果关系,也不保证可交易。
本阶段实战方法 · 把验证流程当作模型的一部分
训练选股模型或使用另类数据时,先保证训练过程没有接触预测时不可得的信息。
- 定义每个样本的特征可得时间和标签覆盖区间,再按预测场景设计时间切分。
- 归一化、缺失填充、特征选择和调参只在训练集拟合;重叠标签要按实际区间purge。
- 用朴素基线和多段滚动样本外比较,报告成本、稳定性、漂移与全部实验次数。
使用边界
- 排行榜或验证集反复用于挑模型后也会过拟合;留一份最终测试集。
- 随机切分不是所有问题都禁止,但金融未来预测必须尊重时点和标签重叠,说明验证目标。
背景 · 从一个困惑说起
同一个特征集,标签从「未来10日收益」(回归)改成「未来10日是否跑赢中位数」(分类)——模型学出的东西悄然不同。新手把两者当口味选择,老手知道这是两种不同世界观:幅度世界与顺序世界。
由此产生的问题
回归与分类在金融场景的行为差异(损失函数/噪声敏感/输出消费)?什么时候必须回归、什么时候分类更稳?「分类概率再转因子」的混合路线?
核心概念
行为差异三点:①损失函数:回归(MSE)惩罚大错——极端日主导训练;分类(交叉熵)只看对错排序——对异常值免疫(q-240的rank思想);②噪声敏感:收益标签的幅度噪声大(±3σ的日子把回归模型带偏);分类把连续目标二值化=有损降噪——代价是丢掉幅度信息;③输出消费:回归输出直接当因子rank;分类输出概率——转成「预测跑赢概率」因子(与回归因子相关性常<0.8,可组合)。选择规则:下游需要幅度(风险预算、精确权重)→回归;只要方向与相对强弱(选股TopN)→分类或分位回归更稳;极端行情频繁的样本(加密/A股个股)→分类的抗噪性物有所值。混合路线:分类概率×回归幅度的加权——两个模型的输出做二次合成(简单版stacking)。
为什么需要它
①标签的最后一课:q-705讲了标签设计四版、本题讲「同一标签的两种数学形态」——标签的自由度到此穷尽;②抗噪的工程直觉:金融低信噪比下,「丢掉幅度换稳健」常是笔好交易(尤其配合树的排名分裂);③双模型组合:回归与分类模型的误差来源不同(幅度噪声vs边界样本)——两者组合是ensemble的最小案例(q-749的预演)。
实际应用场景
实操对照:同一特征跑两版(回归+二分类)→比较拼接样本外IC与分层——分类版IC常略低但稳定性(IC的std)更好;两版输出相关性<0.8则加权合成再测。
与之前知识的联系
q-703(范式)内的最后一岔;q-705(标签)的形态学补充;q-713(过拟合信号)里「极端样本主导」正是回归版的高发症;与q-749(ensemble)的入口。
⚠ 常见误解
- 分类准确率55%就比回归IC0.05好:口径不可直接比——用同一评价器(都转成因子后算IC/分层)再比
- 分类丢幅度太可惜:幅度里噪声占大头(低信噪比)——丢弃可能是赚的;实证对照说了算
- 两版都要所以都用:合成后不提升(相关性>0.9)就选稳的那版——组合的价值以低相关为前提
🛠 本题实践任务
对你的项目跑回归/分类双版对照(同一时序切分):比较IC、分层、极端期表现;相关性<0.85则做合成版——三行结论进实验日志。
💡 提示(先自己想5分钟再看)
分类标签用「跑赢横截面中位数」(每日相对化——比绝对涨跌稳);合成前两版各自标准化。
✅ 验收标准
三版对照表+选择结论。标签形态学毕业——你的ML输入端设计自由度已全部探索。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(标签设计、监督学习),再用案例、公式和代码帮助理解。此功能需要先启用服务。