🧩 非监督学习:聚类、Regime 识别与降维

没有「正确答案」也能干活:聚类的三个正职与三个坑、HMM 识别市场状态(含前视陷阱)、降维的正确姿势——非监督方法在量化中的定位。

非监督学习不预测收益,它做一件更基础的事:在没有标签的数据里找出结构——哪些股票像一个整体?市场现在处于哪种状态?高维因子里真正独立的维度有几个?这三个问题的答案分别是聚类、Regime 识别与降维。

聚类:从数据里长出来的分类

K-means / 层次聚类 / DBSCAN 在量化里的三个正职:

  1. 风格分组:用估值、波动、动量等特征聚类,得到「数据驱动的风格群」——比人工定义的「大盘成长/小盘价值」更贴近实际的相关结构。一个实用产出:聚类簇作为风险预算的分组单位,比申万行业更能反映真实的共动性(某消费龙头与某医药龙头的联动,可能超过同行业两家公司);
  2. 配对/篮子选择:对同行业股票按量价特征聚类,簇内做配对候选——比「同行业挑相关性最高」多一层结构约束(配对工程见统计套利 );
  3. 成分股的分类学:产业链上下游、题材关联度——聚类结果作为另类特征喂给下游监督模型(特征工厂的一环,见特征工程 )。

聚类的三个工程坑:特征必须标准化(量纲主导距离是第一错误——用市值原始值聚类,等于只按市值分组);K 的选择用轮廓系数/肘部法 + 经济学合理性双判据(聚出来的簇要能解释,「第 7 簇是什么」答不上来就减簇);簇的稳定性跨期检验(样本外重聚类,簇结构大变 = 特征选择不稳定)。

Regime 识别:市场状态机

「市场现在处于什么状态」——趋势/震荡、高波/低波、risk-on/risk-off。Regime 识别的价值不在于预测(转点不可预测),而在于给策略提供条件变量:

  • 策略的条件开关:趋势策略在「趋势 regime」加权、均值回复在「震荡 regime」加权(状态条件权重,见因子失效 的 Regime 讨论);
  • 风险预算的动态调整:高波 regime 自动收缩总预算(与波动率目标互补,见仓位 sizing );
  • 因子表现的分段归因:因子在哪个 regime 下失效——失效诊断的显微镜(见事后风控 )。

三种实现,从简单到复杂:

  1. 规则状态机:波动率分位 + 趋势强度(如 ADX)+ 信用利差分位的规则组合——可解释、可审计,默认首选。例:「高波 regime = 20 日波动 > 历史 80 分位 且 持续 5 日」;
  2. HMM(隐马尔可夫):观测(收益、波动、利差)由隐藏状态(regime)生成,用 EM 学习状态转移与发射概率——输出连续的状态概率(比硬分类更适合做权重插值)。工程要点三则:状态数 2–4(多则解释不了);状态的可解释性校验(学出的状态要能被宏观经济语言描述,否则是数学幻觉);前视防线(HMM 的滤波要用仅含历史的 forward 算法,不能用含未来的 smoothing——这是 HMM 回测里最常见的泄漏,Viterbi 平滑出的「完美状态切换」在实盘不可得);
  3. 变点检测:CUSUM/贝叶斯变点检测——不做状态分类,只回答「结构刚刚变了吗」,触发策略的重新评估(与事中风控 的异常检测同源)。

清醒剂:状态识别模型自身的误判率会进入组合——把状态机当「速度限制」而不是「方向盘」(它收紧或放开预算,不直接决定买卖方向),误判的代价就可控。一个诚实的对照:简单二分(波动高低)状态机与 HMM 在多数回测里表现相当——复杂度的边际收益在 regime 识别这个任务上很薄。

降维:找真正独立的维度

  • PCA 的量化正职已述(风险主成分、协整中性化、利率曲线三因子,见线性代数 );在 ML 管线里 PCA 还用于特征去相关(300 个相关特征 → 30 个正交主成分,缓解多重共线);
  • PCA 用于 ML 的陷阱:主成分是全样本拟合的(泄漏风险——必须滚动拟合);成分失去语义(特征工程的可解释性被牺牲)——优先用「聚类去冗余 + 领域知识筛选」,PCA 作为最后手段;
  • 自编码器(Autoencoder):非线性降维——学习「用少数因子重构全部收益」的压缩表示,学界用于隐含因子挖掘(数据驱动的因子发现)。评价要冷静:重构误差低 ≠ 因子可交易,产出的隐因子仍要走完整的因子检验(它们是「PCA 的高级版」,不是 alpha 本身,见ML 定位 )。

关联阅读:状态机的策略接口时序策略 与Meta-Strategy ;HMM 的数学地基马尔可夫链 ;聚类结果进入组合的路径组合风险 。