4. 数据预处理与标准化
盘口高频异动聚类分析的效果,很大程度上不取决于聚类算法本身,而取决于进入算法之前的数据质量。逐笔委托、逐笔成交、快照行情往往来自不同通道,存在时间戳粒度不一致、字段缺失、瞬时跳变、量纲差异悬殊等问题。如果直接把原始盘口特征送入聚类模型,距离度量会被成交量、委托金额这类大数值特征主导,价格类、比率类特征几乎失去作用,聚类结果也就失去了业务含义。本节围绕四个关键环节展开:高频数据清洗、缺失值处理、时间对齐、特征缩放与异常值鲁棒处理,并给出可落地的处理思路与示例参数。
一、高频数据清洗:先定义“脏”再动手
盘口高频数据的“脏”主要有几类典型形态:重复推送(同一时间戳同一档位重复记录)、乱序到达(后发先至的逐笔消息)、明显违背业务约束的记录(买一价高于卖一价、成交量或委托量为负、价格超出涨跌停范围)、以及瞬时毛刺(单笔成交量突增数十倍但下一笔立即恢复)。清洗的第一步不是写代码,而是把业务约束显式化,形成可执行的校验规则。
以某只A股连续竞价时段的逐笔快照为例,可设定如下校验:买一价 ≤ 卖一价;买一价、卖一价均落在当日涨跌停价区间内;十档价格严格单调(买档递减、卖档递增);各档委托量非负;同一证券同一时间戳的记录去重后保留最后一条。对乱序数据,按交易所撮合时间戳排序后再做窗口计算,而不是按本地接收时间排序。毛刺处理不宜简单删除,可先标记,再在特征层面用稳健统计量抑制其影响,避免误删真实的放量异动。
二、缺失值处理:区分“没有发生”与“没有采到”
盘口数据的缺失有两种性质完全不同的情况。第一种是业务性缺失,例如某档位本来就没有挂单,此时委托量为0而非缺失,应填0;第二种是采集性缺失,例如某段时间快照断流、某字段解析失败,这类缺失必须谨慎处理。把两者混为一谈,会把“无挂单”误判为“数据异常”,也会把“断流”误填为“平静”。
处理策略按缺失比例分层:单字段短时缺失(如连续缺失不超过3个快照点)可用前向填充加时间衰减,或线性插值;整段快照缺失且时长超过阈值(示例取30秒)时,该时间窗内的衍生特征应标记为不可用,而不是强行插值;对于买卖盘口不平衡率这类比率特征,若分母为0则定义为缺失并单独标记,不参与后续标准化。缺失标记本身也应作为一个特征维度保留,因为“数据中断”在盘口异动分析中有时恰恰是值得关注的状态。
三、时间对齐:把不同频率的数据放到同一把尺子上
逐笔数据是事件驱动、时间间隔不等,快照数据是固定频率(A股常见为3秒一档),两者必须对齐到统一的时间网格才能构造联合特征。推荐做法是建立固定步长的时间网格(示例取3秒),对每个网格点做“截至该时刻的最新值”对齐:逐笔成交在网格内聚合为成交量、成交笔数、主动买入占比等;快照取该时刻最近一条记录;若网格点之前无任何有效记录,则标记缺失。
对齐时必须明确时间参照系:统一使用交易所撮合时间戳,并约定网格点代表区间左闭右开。跨交易日、午间休市、集合竞价与连续竞价的边界要单独处理,不能把休市前后的数据直接做差分,否则会构造出虚假的巨量异动。下面的示意图展示了从多源原始数据到统一时间网格、再到标准化特征矩阵的处理链路与关键判断点。
四、特征缩放与异常值鲁棒处理
盘口特征量纲差异极大:委托金额可能是百万级,盘口不平衡率在[-1,1]之间,价差以分为单位。若用Z-score标准化,均值和标准差本身会被极端值拉偏,导致正常样本被压缩到很小的区间。更稳妥的做法是稳健标准化:用中位数代替均值、用四分位距IQR代替标准差,即 z = (x − median) / IQR。对金额、成交量这类右偏严重的特征,先做 log(1+x) 变换再标准化,能显著改善分布形态。
异常值处理要与聚类目标一致。盘口异动聚类本身就想识别极端状态,因此不能把所有大值都当噪声删掉。推荐采用“分位数截尾 + 保留标记”的方式:将特征在训练窗的1%和99%分位处截尾,使极端值不主导距离计算,同时保留“是否被截尾”的布尔标记,供后续解释“该簇由极端放量样本构成”。需要特别强调的是,中位数、IQR、分位点这些参数必须只在训练时间窗内估计,再应用到验证窗和实盘窗,否则会引入未来信息,使聚类评估结果虚高。
五、一个可执行的参数示例
假设对某只股票连续竞价时段做3秒网格对齐,训练窗取前20个交易日,可参考如下配置:网格步长3秒;短缺失前向填充上限3点;断流判定阈值30秒;金额类特征先做 log(1+x);标准化采用中位数/IQR;截尾分位取1%与99%;所有统计参数仅在训练窗估计。处理完成后应检查三项结果:各特征标准化后的中位数接近0、IQR接近1;截尾样本占比在2%左右(明显偏离说明分布异常或窗口选择不当);缺失标记特征的非零占比与采集日志中的断流记录能够对应。三项都通过,才说明预处理链路是自洽的,可以进入聚类建模。
总结来看,高频盘口数据的预处理不是一套固定公式,而是一组需要与业务约束、时间参照系和聚类目标保持一致的处理决策。清洗规则要可统计、缺失要分性质、对齐要先定参照系、缩放要稳健且只用训练窗参数,并把每一步的中间标记保留下来,才能让后续的异动聚类建立在可信的数据基础之上。