我有不同系列长度的时间序列数据。我想根据 DTW 距离进行聚类,但找不到与之相关的 ant 库。sklearn
给出直接错误,而 tslearn kmeans 给出错误答案。
我的问题是如果我用零填充它就可以解决,但我不确定这在聚类时填充时间序列数据是否正确。
欢迎提出有关时间序列数据的其他聚类技术的建议。
max_length = 0
for i in train_1:
if(len(i)>max_length):
max_length = len(i)
print(max_length)
train_1 = sequence.pad_sequences(train_1, maxlen=max_length)
km3 = TimeSeriesKMeans(n_clusters = 4, metric="dtw",verbose = False,random_state = 0).fit(train_1)
print(km3.labels_)
您可以尝试定制 k-means(聚类算法)或其他算法。源代码可以在 sklearn 库中轻松获得。填充确实不是一个很好的选择,因为它会改变问题本身。您还可以使用 tslearn 和 pyclustering(用于最佳集群)作为替代方案,但请记住使用 DTW 距离而不是欧几里德距离。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)