如何在具有nans的时间序列数据上使用k-means?

时间:2013-09-05 02:17:53

标签: python numpy time-series cluster-analysis

我有许多时间序列记录在某些时候重叠,并且不一定具有相同的开始和结束日期。每行代表不同的时间序列。我将它们设置为相同的长度以保持数据收集的实际时间。

例如,在t(1,2,3,4,5,6):

Station 1: nan, nan, 2, 4, 5, 10

Station 2: nan, 1, 4, nan, 10, 8

Station 3: 1, 9, 4, 7, nan, nan

我正在尝试在Python中运行聚类分析来对具有类似行为的站进行分组,其中行为的时间很重要,所以我不能只是摆脱nans。 (我知道)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

K-means不是这种数据的最佳算法。

K-means旨在最大限度地减少群内方差(=平方和,WCSS)。

但是你如何用NaN计算方差?无论如何,这里的差异有多大意义?

相反,您可能想要使用

  • 为时间序列设计的相似性度量,例如DTW,阈值交叉距离等。
  • 基于距离的聚类算法。如果您只有几个系列,则层次聚类应该没问题。