寻求适配时间序列聚类场景的智能距离度量方法
时间序列聚类:找到符合需求的距离度量方案
最近在做时间序列聚类的任务,一直在找合适的距离度量方法,试了好几种常见的都踩坑了,终于找到可行的方案了,分享给大家:
问题背景
我需要给一组时间序列做聚类,核心需求是:当聚类算法提取出三个质心[s1, s2, s3]时,新样本sx必须被划分到与s2最相似的聚类中,也就是距离函数d要满足:
d(sx, s2) < d(sx, s1) 且 d(sx, s2) < d(sx, s3)
之前试过的常见度量——cosine、euclidean、minkowski、dynamic time warping——全都达不到这个要求,要么是sx和s1的距离更小,要么是和s3的距离没有拉开足够差距,完全不符合我的业务逻辑。
可行解决方案
后来看到用户Pietro P给出的关键建议:将时间序列转换为累积版本,再在这个累积序列上应用距离度量,试了之后发现完美解决了我的问题!
验证结果
- 基于累积时间序列计算的距离完全符合预期:
d(sx, s2)确实小于与s1、s3的距离,成功把sx分到了正确的聚类中 - 配套的对比图表直观展示了差异:原始时间序列下各度量的结果混乱,无法区分出
s2是最优匹配;但转换为累积版本后,sx与s2的距离优势非常明显,各度量的结果都一致指向正确的聚类
内容的提问来源于stack exchange,提问作者paolof89
相关产品推荐
相关产品推荐

