在python(scipy)中用空间和时间变量进行聚类
我的数据集格式:[x坐标,y坐标,小时],小时为0到23的整数值。
我现在的问题是,当我需要坐标的欧式距离度量标准时,如何聚类这些数据,但是对于小时则需要不同的数据(因为欧几里德距离度量标准中d(23,0)为23)。 scipy中的每个功能可以使用不同距离度量标准对数据进行聚类吗? 怎么样?
谢谢
您需要定义自己的指标,以适当的方式处理“时间”。 在scipy.spatial.distance.pdist的文档中,您可以定义自己的功能
Y = pdist(X, f)
使用用户提供的二元函数f计算X中所有向量对之间的距离。 [...]例如,矢量之间的欧几里德距离可以如下计算:
dm = pdist(X, lambda u, v: np.sqrt(((u-v)**2).sum()))
该度量可以通过metric
关键字传递给任何scipy聚类算法。 例如,使用linkage
:
scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')
链接地址: http://www.djcxy.com/p/15861.html
上一篇: Clustering in python(scipy) with space and time variables