Я пытаюсь сделать кластеризацию K-некоторого набора данных с помощью sklearn. Проблема в том, что одно из измерений - это час дня: число от 0 до 23, и поэтому алгоритм расстояния считает, что 0 очень далек от 23, потому что в абсолютном выражении это так. В действительности и для моих целей, час 0 очень близок к часу 23. Есть ли способ сделать алгоритм расстояния в какой-то форме обертывания, чтобы он вычислял более «реальную» разницу во времени. я делаю что-то простое, похожее на следующее:Обтекание при расчете расстояния для k-средних
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]
, где первый элемент час.
Любые идеи?
Все это имеет смысл. У меня была наивная мысль, что использование цилиндрического расстояния вместо евклидова может дать соответствующие результаты. Я буду больше читать о ваших предложениях, прежде чем принимать их в качестве ответа. Благодаря! – leonsas