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

use*_*977 5 python numpy cluster-analysis time-series

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

例如,在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
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

Ano*_*sse 2

K 均值并不是处理此类数据的最佳算法。

K 均值旨在最小化簇内方差(= 平方和,WCSS)。

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

相反,您可能想使用

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