r - 使用 dtwclust 进行动态时间规整距离 (DTW) 的时间序列聚类

标签 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, ...)

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

$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) 我只能为距离选择 dtwdtw2sbd 以及 dbashapepam 作为我的质心(因为列表的长度不同)。但是,我不知道哪个距离和质心是正确的。

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

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

k = 4, distance = dtw, centroid = dba(簇中心似乎是有线的?)

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

最佳答案

您不想“选择”参数,而是评估结果。因此,需要选择一个评价聚类的标准。您基本上可以改变距离和 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

关于r - 使用 dtwclust 进行动态时间规整距离 (DTW) 的时间序列聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35051781/

相关文章:

r - 使用scale_x_datetime和时间数据设置限制

r - 获取矩阵条目的等级?

mysql - Rstudio-server 中的 sql 查询结果为空

machine-learning - 应用 mod 运算进行分类

python - 使用监督机器学习 Python 将推文分类

r - 如何在给定时间段之间添加具有时间段的行?

python - 属性错误: module 'tensorflow.python.pywrap_tensorflow' has no attribute 'TFE_Py_RegisterExceptionClass'

r - 如何对面板图进行网格化,使其在 R 中的 ggplot 中具有分类变量和不同的 x 变量

r - 如何在ggplot中引用管道对象?

python - LDA 和 pLSA 包(最好用于 Python)