我正在尝试使用 sklearn 对某些数据集进行 K 均值聚类。问题是其中一个维度是一天中的小时:一个从 0 到 23 的数字,因此距离算法认为 0 离 23 很远,因为从绝对意义上来说它是。实际上,出于我的目的,0 小时非常接近 23 小时。有没有办法让距离算法进行某种形式的环绕,以便计算更“真实”的时差。我正在做一些简单的事情,类似于以下内容:
from sklearn.cluster import KMeans
clusters = KMeans(n_clusters = 2)
data = vstack(data)
fit = clusters.fit(data)
classes = fit.predict(data)
data
元素看起来像[22, 418, 192]
第一个元素是小时。
有任何想法吗?