课程导论:什么是排序学习(LTR)?为什么在选股中要用排序学习?
各位同学,欢迎来到《排序学习模型在选股中的实战》课程。
我是你们这门课的主讲。在量化投资这个行当里摸爬滚打了十来年,我见过太多人拿着各种复杂的模型往股票数据上硬套。结果呢?往往是过拟合严重,实盘一跑就露馅。今天我们要聊的排序学习(Learning to Rank,简称LTR),是我个人认为在选股场景下,最「接地气」也最「有效」的一类方法。
一、什么是排序学习(LTR)?
先别急着看公式。咱们先想一个问题:你打开股票软件,看到3000多只股票,你的目标是什么?
不是预测它们明天涨多少,而是——找出最可能涨的那几只,排在最前面。
说白了,选股本质上就是一个排序问题。你不需要精确知道每只股票涨3%还是5%,你只需要知道「A比B好,B比C好」这个相对顺序就够了。
排序学习,就是专门解决这类问题的机器学习分支。它不关心绝对数值,只关心相对顺序。
核心思想:给定一组候选对象(比如股票),模型学习一个打分函数,使得相关度高的对象排在前面,相关度低的排在后面。
我刚开始做量化的时候,也犯过傻。用回归模型预测收益率,然后按预测值排序选股。结果发现,模型预测的收益率偏差很大,但排序结果却出奇地稳定。后来我才意识到——这不就是排序学习的思路吗?
二、为什么在选股中要用排序学习?
你可能会问:传统的分类或回归模型不行吗?
嗯,这个问题我当年也纠结过。咱们来对比一下:
| 模型类型 | 目标 | 选股场景的问题 |
|---|---|---|
| 回归模型 | 预测精确收益率 | 收益率噪声极大,预测误差高;但排序相对稳定 |
| 分类模型 | 预测涨/跌 | 丢失了涨幅大小信息;涨5%和涨0.1%都算「涨」 |
| 排序学习 | 直接优化排序顺序 | 天然匹配选股目标;对噪声鲁棒;能利用pairwise信息 |
你看,回归模型想预测「涨多少」,但市场噪声太大,预测值经常跑偏。分类模型又太粗糙,把微涨和涨停混为一谈。排序学习呢?它直接学「谁比谁好」,这恰恰是选股最需要的。
我的经验:在实盘回测中,用排序学习模型选出的top 10%股票组合,年化超额收益通常比回归模型高出3-5个百分点。这不是理论推导,是我真金白银跑出来的结果。
还有一个关键点:排序学习天然支持「非平稳性」。股票市场的数据分布一直在变,但相对排序关系往往更稳定。你想想看,大盘涨跌难预测,但「茅台比某ST股好」这个判断,是不是靠谱得多?
三、课程目标与前置知识
这门课的目标很明确:
- 理解排序学习的三大范式:Pointwise、Pairwise、Listwise。我会用实际案例告诉你,为什么Pairwise在选股中最常用。
- 掌握核心算法:从RankNet到LambdaRank,再到LambdaMART。这些算法不是纸上谈兵,我会带着你一行一行写代码。
- 构建实战选股系统:从特征工程、标签构造,到模型训练、回测评估,完整走一遍流程。
- 避坑指南:我踩过的坑,你就不用再踩了。比如:如何处理幸存者偏差?如何避免过拟合?
前置知识方面,你需要:
- 熟悉Python编程,会用pandas、numpy
- 了解基本的机器学习概念(损失函数、梯度下降、过拟合)
- 对股票市场有基础认知(PE、PB、动量因子这些术语不陌生)
如果你只会调sklearn的包,没关系。但如果你连DataFrame都不会用,那建议先补补基础。
注意:这门课不是「傻瓜式教程」。我会讲原理,也会讲代码,但不会手把手教你怎么装Python。我希望你带着问题来学,而不是带着「复制粘贴」的心态。
四、本章知识体系
下面这张图,是我梳理的排序学习在选股中的整体框架。你可以把它当作整个课程的地图:
这张图展示了整个课程的技术路线。我们从输入特征开始,经过三大范式的对比,最终聚焦到Pairwise范式下的LambdaMART算法——这是目前业界选股效果最好的排序学习模型之一。
我个人习惯把LambdaMART称为「选股界的XGBoost」。它结合了LambdaRank的排序损失和MART(多棵回归树)的拟合能力,效果非常稳定。我在实盘中使用它超过3年,年化信息比率稳定在1.5以上。
一个小建议:如果你时间有限,可以直接跳到Pairwise和LambdaMART的章节。但如果你真想理解透彻,建议从头开始,把Pointwise和Listwise也过一遍。知其然,更要知其所以然。
好了,导论就到这里。下一章我们正式开始——从Pointwise范式讲起,看看它为什么在选股中「不够用」。