Есть ли способ получить внутрикластерные расстояния для k-средних в Python - PullRequest
0 голосов
/ 14 октября 2019

Привет, я новичок в Python и пытаюсь выяснить это ниже. Очень ценю любую помощь. Спасибо

  1. Как получить внутрикластерные и межкластерные расстояния в kmeans, используя python?
  2. Как проверить качество кластеров? Какие-либо меры для проверки качества сформированных кластеров?
  3. Есть ли способ узнать, какие факторы / переменные являются наиболее значимыми характеристиками, влияющими на кластеризацию - Извлечение / выделение функций

Я пыталсяэто для вопроса 1 выше, это правильный подход ??

dists = euclidean_distances(km.cluster_centers_)
tri_dists = dists[np.triu_indices(4, 1)]
max_dist, avg_dist, min_dist = tri_dists.max(), tri_dists.mean(), tri_dists.min()

print(max_dist, avg_dist, min_dist)

1 Ответ

1 голос
/ 14 октября 2019

Избегайте объединения нескольких вопросов в один.

  1. K-means не вычисляет все эти расстояния. В противном случае потребовалось бы O (n²) времени и памяти, что было бы намного медленнее! Он использует специальное дисперсионное свойство (еще одна причина, по которой он не просто оптимизирует другие расстояния, кроме суммы квадратов), известное как теорема Кенига-Гюйгенса.
  2. Да, их было более 20, возможно, даже 100Такие показатели качества предложены в литературе. Но это не облегчает выбор «лучшей» кластеризации: в конце концов, кластеры являются субъективными для пользователя.
  3. Да, вы можете применять различные методы, начиная от анализа отклоненийдля факторного анализа в случайных лесах.
...