Основы кластеризации k-средних

Кластерный анализ на Python

Shaumik Daityari

Business Analyst

Почему k-средних?

  • Главный недостаток иерархической кластеризации: время выполнения
  • K-средних работает значительно быстрее на больших наборах данных
Кластерный анализ на Python

Шаг 1: формирование центров кластеров

kmeans(obs, k_or_guess, iter, thresh, check_finite)
  • obs: стандартизованные наблюдения
  • k_or_guess: количество кластеров
  • iter: число итераций (по умолчанию: 20)
  • thres: порог (по умолчанию: 1e-05)
  • check_finite: проверять ли, что наблюдения содержат только конечные числа (по умолчанию: True)

Возвращает два объекта: центры кластеров, искажение

Кластерный анализ на Python

Как вычисляется искажение?

Кластерный анализ на Python

Шаг 2: формирование меток кластеров

vq(obs, code_book, check_finite=True)
  • obs: стандартизованные наблюдения
  • code_book: центры кластеров
  • check_finite: проверять ли, что наблюдения содержат только конечные числа (по умолчанию: True)

Возвращает два объекта: список меток кластеров, список искажений

Кластерный анализ на Python

Об искажениях

  • kmeans возвращает одно значение искажения
  • vq возвращает список искажений.
Кластерный анализ на Python

Запуск k-средних

# Import kmeans and vq functions
from scipy.cluster.vq import kmeans, vq
# Generate cluster centers and labels
cluster_centers, _ = kmeans(df[['scaled_x', 'scaled_y']], 3)
df['cluster_labels'], _ = vq(df[['scaled_x', 'scaled_y']], cluster_centers)
# Plot clusters
sns.scatterplot(x='scaled_x', y='scaled_y', hue='cluster_labels', data=df)
plt.show()
Кластерный анализ на Python

Кластерный анализ на Python

Далее: упражнения!

Кластерный анализ на Python

Preparing Video For Download...