具有dtwclust的动态时间规整距离(DTW)的时间序列聚类

时间:2016-01-28 02:23:16

标签: r machine-learning time-series cluster-analysis

我正尝试使用dtwclust(data = NULL, type = "partitional", k = 2L, method = "average", distance = "dtw", centroid = "pam", preproc = NULL, dc = NULL, control = NULL, seed = NULL, distmat = NULL, ...) 包执行具有动态时间扭曲距离(DTW)的时间序列聚类。

我使用这个功能,

$a
[1]  0  0  0  0  2  3  6  7  8  9 11 13

$b
[1]  0  1  1  2  4  7  8 11 13 15 17 19 22 25 28 31 34 35

$c
[1]  1  2  4  4  4  4  4  4  4  4  5  5  5  5  5  5  5  6  6  6  6  7  7  8  8  9 10 10 12 14 15 17 19

$d
[1] 0 0 0 0 0 1 2 4 4 4

$e
[1]  0  1  1  3  5  6  9 12 14 17 19 20 22 24 28 31 32 34

我将数据保存为列表,它们的长度不同。 比如下面的例子,这是一个时间序列。

dtw

现在,我的问题是

(1) 我只能为我的距离选择dtw2sbddba,为我的质心选择shapepamk = 6, distance = dtw, centroid = dba(因为长度不同)列表)。但是,我不知道哪个距离和质心是正确的。

(2) 我已经绘制了一些图表,但我不知道如何选择正确合理的图表。

k = 4, distance = dtw, centroid = dba

{{1}}(群集中心似乎有线?)

我已经做了所有的组合,k从4到13 ...但我不知道如何选择合适的...

1 个答案:

答案 0 :(得分:3)

您不希望“选择”参数,而是评估结果。因此,您需要选择一个评估聚类的标准。您基本上改变了距离和k等参数,然后使用损失函数评估聚类。通常,评估聚类有两种可能性:

外部评估:

您可以使用标签(不用于聚类,因此被视为外部标签)来计算假阳性,真阳性等形式的准确性,这最终会引导您进入AUC measure

您的数据似乎没有标记,因此您无法计算任何准确度,这是最简单的方法。

内部评估:

或者,您可以尝试最大化群集内相似性(群集成员与特定群集的所有其他成员的平均距离)并最小化群集间相似性(群集成员与群集之外的所有元素的平均距离)他自己的集群)。

有关详细信息,请访问:

http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-clustering-1.html

http://www.ims.uni-stuttgart.de/institut/mitarbeiter/schulte/theses/phd/algorithm.pdf