时间序列聚类与动态时间规整距离(DTW)结合使用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)我只能为距离选择dtwdtw2sbd,为中心点选择dbashapepam(因为列表长度不同)。但是,我不知道哪种距离和中心点是正确的选择。

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

k = 6, distance = dtw, centroid = dba

k = 4, distance = dtw, centroid = dba(聚类中心看起来有点奇怪?)

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


回答:

你不应该“选择”参数,而是应该评估结果。因此,你需要选择一个评估聚类的标准。你可以改变参数如距离和k,然后使用损失函数来评估聚类。一般来说,聚类评估有两种可能性:

外部评估:

你可以使用标签(这些标签在聚类过程中未使用,因此被视为外部)来计算准确率,形式为假阳性、真阳性等,最终会引导你到AUC测量

看起来你的数据没有标签,因此你无法计算任何准确率,这本来是最简单的办法。

内部评估:

或者,你可以尝试最大化聚类内相似性(一个聚类成员与同一聚类中所有其他成员的平均距离)和最小化聚类间相似性(一个聚类成员与其聚类外所有元素的平均距离)。

更多信息可以参考:

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

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注