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
功能中包括了评估工具。