use*_*102 8 python numpy cluster-analysis scipy euclidean-distance
我的数据集的格式:[x坐标,y坐标,小时],小时是0到23之间的整数值.
我现在的问题是,当我需要坐标的欧几里德距离度量时,我如何对这些数据进行聚类,但是对于小时来说是一个不同的距离(因为在欧几里德距离度量中d(23,0)是23).是否可以为scipy中的每个功能对具有不同距离度量的数据进行聚类?怎么样?
谢谢
您需要定义自己的指标,以适当的方式处理“时间”。在scipy.spatial.distance.pdist的文档中,您可以定义自己的函数
Y = pdist(X, f)
Run Code Online (Sandbox Code Playgroud)
使用用户提供的 2 元函数 f 计算 X 中所有向量对之间的距离。[...]例如,向量之间的欧几里得距离可以计算如下:
dm = pdist(X, lambda u, v: np.sqrt(((u-v)**2).sum()))
Run Code Online (Sandbox Code Playgroud)
该指标可以通过关键字传递给任何 scipy 聚类算法metric。例如,使用linkage:
scipy.cluster.hierarchy.linkage(y, method='single', metric='euclidean')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |