python - 使用 DTW 距离矩阵的凝聚聚类
问题描述
我正在尝试对时间序列数据集进行聚类。为此,我计算了成对的 DTW 距离。这些数据收集在距离矩阵中,我想将其用作 AgglomerativeClustering() sklearn 方法的输入。
看来我需要使用压缩距离矩阵。但如果我这样做,聚类方法会将每个距离解释为一个新样本,因此我得到的标签太多。我应该如何正确地做到这一点?
这是我尝试过的示例代码:
import numpy as np
# Test symmetric matrix
N = 4
b = np.random.randint(0,5,size=(N,N))
b_symm = (b + b.T)/2
np.fill_diagonal(b_symm,np.zeros(N))
# Condensed matrix
condensed = squareform(b_symm)
model = AgglomerativeClustering(n_clusters=2, linkage=linkage)
y = model.fit_predict(condensed.reshape(-1,1))
解决方案
请参阅文档:
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.AgglomerativeClustering.html
亲和力:字符串或可调用,默认:“欧几里得”</p>
用于计算链接的度量。可以是“欧几里得”、“l1”、“l2”、“曼哈顿”、“余弦”或“预计算”。如果链接是“ward”,则只接受“euclidean”。
推荐阅读
- debugging - Keil Ide 在尝试调试或编程时崩溃
- cplex - Cplex SyntaxError:语法无效
- c++ - 如何停止 Qt 类中的名称修改?
- django - 如何在 django for android 中使用 google api 客户端创建帐户/登录
- linux - SELinux 策略中定义的 __default__ 用户到 unconfined_u 的映射在哪里?
- python - AttributeError:'NoneType'对象在python中的discord.py中没有属性'strip'错误
- dart - About not being able to do pub install in Dart
- ruby-on-rails - I don't know how to set the access_token
- freemarker - know last iteration of list FTL
- c# - 经过身份验证的用户在 web api owin 中间件中丢失