使用 dtwclust 的动态时间规整距离 (DTW) 的时间序列聚类
Time Series Clustering With Dynamic Time Warping Distance (DTW) with dtwclust
我正在尝试使用 dtwclust
包执行具有动态时间规整距离 (DTW) 的时间序列聚类。
我用这个功能,
dtwclust(data = NULL, type = "partitional", k = 2L, method = "average",
distance = "dtw", centroid = "pam", preproc = NULL, dc = NULL,
control = NULL, seed = NULL, distmat = NULL, ...)
我将数据保存为列表,它们的长度不同。
就像下面的例子,它是一个时间序列。
$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
现在,我的问题是
(1)
我的距离只能选择 dtw
、dtw2
或 sbd
,质心只能选择 dba
、shape
或 pam
(因为长度不同列表)。但是,我不知道哪个距离和质心是正确的。
(2)
画了一些图,不知道怎么选才合适。
k = 6, distance = dtw, centroid = dba
:
k = 4, distance = dtw, centroid = dba
(集群中心好像有线?)
我已经完成了所有的组合,k 从 4 到 13...但是我不知道如何选择正确的...
您不想 "chose" 参数,而是评估结果。因此,您需要选择一个评价聚类的标准。您基本上可以改变距离和 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
我正在尝试使用 dtwclust
包执行具有动态时间规整距离 (DTW) 的时间序列聚类。
我用这个功能,
dtwclust(data = NULL, type = "partitional", k = 2L, method = "average",
distance = "dtw", centroid = "pam", preproc = NULL, dc = NULL,
control = NULL, seed = NULL, distmat = NULL, ...)
我将数据保存为列表,它们的长度不同。 就像下面的例子,它是一个时间序列。
$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
现在,我的问题是
(1)
我的距离只能选择 dtw
、dtw2
或 sbd
,质心只能选择 dba
、shape
或 pam
(因为长度不同列表)。但是,我不知道哪个距离和质心是正确的。
(2) 画了一些图,不知道怎么选才合适。
k = 6, distance = dtw, centroid = dba
:
k = 4, distance = dtw, centroid = dba
(集群中心好像有线?)
我已经完成了所有的组合,k 从 4 到 13...但是我不知道如何选择正确的...
您不想 "chose" 参数,而是评估结果。因此,您需要选择一个评价聚类的标准。您基本上可以改变距离和 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