Как получить N номеров точек данных, ближайших к центру кластера? - PullRequest
0 голосов
/ 15 декабря 2018

Я хочу получить N ближайших точек данных из центра (на основе евклидова расстояния) в каждом кластере после развертывания алгоритма K-средних.Я могу получить индексы точек данных, используя

np.where(km.labels_ == 0)

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы можете использовать метод transform класса kmeans, который вычисляет расстояние каждой точки данных до каждого из кластеров.

Затем, если вы хотите, чтобы верхние N точки начинались с 0-гоиндекс cluster тогда вы можете просто сделать:

cluster = 0
N = 2
np.sort(kmeans.transform(X)[:,cluster])[:N]
0 голосов
/ 15 декабря 2018

Простой четырехэтапный процесс:

  1. Вычисление среднего значения
  2. Вычисление расстояний от среднего значения
  3. Выберите наименьшее k с помощью argmin
  4. сопоставляет индексы заката с индексами наборов данных путем индексации в возвращаемое значение np.where
...