无标签分组:行情状态与同类
K-means 通过重复两步把 n 个点分成 k 组:把每个点分配给最近的中心,再把每个中心移到其点的均值。它最小化惯量,即到中心距离的平方和 Σᵢ‖xᵢ-c_(g(i))‖²。惯量随 k 增大总是下降,所以不能单独用来选 k;轮廓系数对每个点比较到自己组的距离与到最近其他组的距离,平均值在 -1 到 1 之间(越高分得越开)。两条实用规则:先把各列放到同一尺度,因为距离会把原始单位加在一起(StandardScaler);并用固定的 random_state 多次启动(n_init=3),因为 k-means 只找到局部最优,而且标签是任意编号。
对于行情状态,用 21 日收益、年化 21 日波动率和相对运行高点的回撤来描述 SPY 的每一天,标准化后以 k=3 聚类,并按波动率重新编号,使 0 为最平静的状态。在 5,384 天中,各组为:平静状态占 72% 的日子(波动率 11.6%)、中间状态占 25%(22.4%)、危机状态占 2.7%(61.5%)。次日平均收益几乎没有差别(0.04%、0.05%、0.14%),但离散程度为 0.79%、1.49%、3.96%:状态告诉你的是风险,而不是方向。对于同类资产,用距离 1-ρ 衡量两个资产的共同变动,取每个资产的距离行作为其描述,再对这些行聚类。在没有任何行业信息的情况下,59 个资产分成科技与消费、防御型、银行与工业、能源、债券与黄金。相信一种分组之前要先检验稳定性:样本前半段与后半段分组的调整兰德指数只有 0.38,所以边界上的资产会换边。
- 先缩放,多次重启:
StandardScaler、n_init=3、固定random_state;标签是任意编号,应按有意义的量重新命名。 - 惯量随 k 下降;轮廓系数比较分离与离散,二者都不能单独选 k。
- 状态反映风险而非方向;使用同类分组前,先用调整兰德指数检验其稳定性。
实验:评分内容
- 状态描述量10 分
- 拟合状态20 分
- 选择 k15 分
- 汇总状态15 分
- 同类分组15 分
- 分组稳定性10 分
- 研究15 分