如何衡量两个样本量不同的分布或波形数据的相似度?
不等长波形相似度衡量方法
针对你提到的两个样本量不同的波形数据,可根据你需要的相似性维度,选择以下适用的计算方案:
无需预先对齐长度的方案
- 动态时间规整(DTW)
这是专门为不等长时间序列/波形设计的相似度计算方法,会自动计算两个序列点之间的最优匹配路径,输出的距离值越小,代表两个波形的时序形态相似度越高。
常用实现:Python环境可直接调用dtw-python、tslearn库的DTW接口,输入原始不等长列表即可直接得到结果。 - KS检验(柯尔莫哥洛夫-斯米尔诺夫检验)
如果你只需要判断两个波形的数值分布是否相似,不关注时序先后顺序,可直接用KS检验。输入原始不等长数值列表即可得到p值,通常p>0.05即可认为两个数据的分布没有显著差异。
先对齐长度再计算的方案
你可以先通过重采样操作把两个波形对齐到相同样本数:比如通过线性插值、三次样条插值的方式,将1016个样本的波形下采样到512个点,或者将两个波形都统一重采样到1024个点,对齐后即可用常规的相似度指标计算:
- 皮尔逊相关系数:取值范围为[-1,1],越接近1说明两个波形的变化趋势一致性越高
- 余弦相似度:取值范围为[-1,1],越接近1说明波形的整体形态越相似
- 欧氏距离:数值越小说明两个波形对应点的数值差异越小
内容的提问来源于stack exchange,提问作者V S
相关产品推荐
相关产品推荐

