R 具有动态时间扭曲距离(DTW)和dtwclust的时间序列聚类

R 具有动态时间扭曲距离(DTW)和dtwclust的时间序列聚类,r,machine-learning,time-series,cluster-analysis,R,Machine Learning,Time Series,Cluster Analysis,我正在尝试使用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, ...) 我将数据保存为列表,它们的长度

我正在尝试使用
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
现在,我的问题是

(一) 我只能为我的距离选择
dtw
dtw2
sbd
,为我的质心选择
dba
shape
pam
(因为列表长度不同)。但是,我不知道哪个距离和质心是正确的

(二) 我画了一些图,但我不知道如何选择正确和合理的一个

k=6,距离=dtw,质心=dba

k=4,距离=dtw,质心=dba
(集群中心似乎是有线的?)

我做了所有的组合,从4到13。。。但我不知道如何选择正确的参数…

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

外部评估:

您可以使用标签(这些标签未用于聚类,因此被视为外部标签)以假阳性、真阳性等形式计算准确度,这将最终导致出现错误

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

内部评估:

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

欲了解更多信息,请访问:


请注意,
dtwclust
现在在
cvi
功能中包括了评估工具。