在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

下一篇: CocoaPods podspec lint failure