决策树与“查字典”模型。
0. 量化为什么要算法
这里的底层逻辑和LLM是相同的,都是将现实世界的某些东西视作一个多元函数,然后采用某种方式去逼近这个函数。
在量化中,我们可以把过往的市场行情甚至新闻量化为函数的自变量,我们希望函数的输出是未来的行情预测。如果预测的好,那我们就赚钱。但是很明显,数学上不存在一个显式表达式来描述这个函数,我们就需要用一定的计算机算法去拟合这些函数,最简单的拟合就是我们高中学过的最小二乘法,LLM采用Transformer作为核心去拟合人们“说话”这个函数过程,而量化里面较为经典的就是使用LGBM去拟合“市场”这个函数过程。这就是量化算法的本质。
1. 什么是决策树
想象一下,你现在是基金经理,要在 A 股 5000 多只股票中,挑出一只明天大概率上涨的股票。你的大脑里可能会浮现出一套层层递进的筛选规则:
-
第一层判断:它是沪深300成分股吗?
- 否 -> 淘汰(风险太大)
- 是 -> 进入下一层
-
第二层判断:过去 5 天成交量是否明显放大?
- 否 -> 淘汰(没有资金关注)
- 是 -> 进入下一层
-
第三层判断:当前市盈率(PE)是否小于 30?
- 是 -> 买入信号
- 否 -> 观望信号
你刚刚在脑海里构建了一棵决策树(Decision Tree)。
它也很像“查字典”。查字典时,我们不是从第一页逐页翻,而是先看首字母,再逐步缩小范围,最后定位到一个词条。决策树也是这样:通过一系列“是/否”或“大于/小于”的判断,把复杂的数据一步步划分到不同的“叶子节点”上,最终给出一个预测结果,比如“涨”“跌”或某个收益率。
在计算机科学中,可以把它理解为一个多层嵌套的 if-else 规则系统。更严格地说,决策树是一个树形结构:每个内部节点对某个特征做一次判断,每条分支对应一个判断结果,最终的叶子节点给出预测值。
2. 机器是怎么“学会”这棵树的?(核心原理)
人类可以凭经验“拍脑袋”定规则,那机器是怎么自动长出一棵树的呢?
机器学习的核心思想是:优先寻找那个“最能区分好坏”的问题,优先提问。
在数学上,这通常通过最大化**信息增益(Information Gain)或最小化基尼不纯度(Gini Impurity)**来实现。两者的直觉一致:都希望切分后的数据子集变得更“纯”,也就是同一组里的结果尽可能一致。
举个例子:
- 假设机器手里有 1000 只股票的历史数据,其中 500 只第二天上涨,500 只下跌。整体上是一团乱麻,纯度很低。
- 机器会尝试用各种因子去切分这 1000 只股票。
- 如果用“股票代码尾数是奇数还是偶数”来切分,发现切完后两边仍然涨跌各半。这说明这个特征几乎没有区分能力,信息增益接近 0。
- 如果用“过去 20 天是否连续上涨”来切分,发现:在“连续上涨”的股票中,80% 第二天出现回调;“未连续上涨”的股票中,涨跌大致各半。
- 因此,对机器来说,“过去 20 天是否连续上涨”这个特征能把数据切分得更“纯”:一边大概率下跌,另一边不确定。所以,算法会优先选择这个特征作为树的根节点。
实际训练时,算法会在每个节点遍历所有候选特征和可能的切分点,计算每一次切分带来的“纯度提升”,然后选择提升最大的那一个。这个过程不断重复,直到满足停止条件,比如达到最大深度、节点里的样本数量太少,或者继续切分不再带来明显提升。
如果不加任何限制,决策树会一直分裂下去。这正是下一节要说的核心问题。
3. 量化视角的致命痛点:过拟合(死记硬背)
既然决策树符合直觉,又能自动找规律,为什么在量化交易里不能直接用单棵决策树?
原因是金融数据有一个显著特点:信噪比极低。真实规律往往很弱,而市场噪声非常多。
如果不加限制,决策树会一直分裂,直到每个叶子节点里只有一个或极少数样本。如果特征足够细,模型可以把训练集几乎“背”下来,历史准确率可能接近 100%。
但这往往是灾难的开始。来看一个量化中的场景:
假设在 2015 年 6 月 12 日,某只股票因为交易员的“乌龙指”,瞬间直线涨停,而历史样本中这只股票次日恰好也上涨。
单棵决策树为了把训练集拟合得更好,可能生成一条极其具体、复杂的规则:
“如果 日期=20150612 且 股票代码=600XXX 且 开盘价=15.32元 且 所属行业=纺织,那么预测:次日上涨。”
**请问,这条规则是市场的“真实规律”吗?**显然不是。这更像一个偶然的噪声或异常值。
但是,单棵决策树没有足够的辨别能力。它可能把噪声当作黄金规律,并且“死记硬背”下来。这种现象在机器学习中称为过拟合(Overfitting)。
当你把这套规则用到未来实盘中时,由于几乎不会再遇到完全相同的条件,模型的预测能力会迅速下降,甚至导致严重亏损。这也是量化圈常说的:“回测猛如虎,实盘二百五。”
4. 第 1 课总结
- 决策树是一种树形结构的分类/回归模型,可以理解为多层
if-else规则。它通过不断寻找“区分度最高”的特征来分裂数据,最终把样本分到叶子节点。 - 优点:直观、可解释性强。你能清楚看到它为什么做出某个决定。
- 致命缺点:极易过拟合。在充满噪声的金融市场中,单棵树容易“死记硬背”历史噪声,导致实盘表现大幅缩水。
因此,单棵决策树更像是后续学习的一个重要地基,而不是可以在量化实盘中单独使用的完整方案。