Выбор количества кластеров

Сегментация клиентов в Python

Karolis Urbonas

Head of Data Science, Amazon

Методы

  • Визуальные методы — критерий «локтя»
  • Математические методы — коэффициент силуэта
  • Эксперименты и интерпретация
Сегментация клиентов в Python

Метод «локтя»

  • Построить график зависимости числа кластеров от суммы квадратов ошибок внутри кластеров (SSE) — сумма квадратов расстояний от каждой точки до центра её кластера
  • Найти «локоть» на графике
  • «Локоть» — точка, соответствующая «оптимальному» числу кластеров
Сегментация клиентов в Python

Метод «локтя»

# Import key libraries
from sklearn.cluster import KMeans
import seaborn as sns
from matplotlib import pyplot as plt

# Fit KMeans and calculate SSE for each *k* sse = {} for k in range(1, 11): kmeans = KMeans(n_clusters=k, random_state=1) kmeans.fit(data_normalized) sse[k] = kmeans.inertia_ # sum of squared distances to closest cluster center
# Plot SSE for each *k* plt.title('The Elbow Method') plt.xlabel('k'); plt.ylabel('SSE') sns.pointplot(x=list(sse.keys()), y=list(sse.values())) plt.show()
Сегментация клиентов в Python

Метод «локтя»

График метода «локтя»:

Сегментация клиентов в Python

Метод «локтя»

График метода «локтя»:

Сегментация клиентов в Python

Применение метода «локтя»

  • Лучше выбирать точку «локтя» или следующую за ней
  • Используйте график как ориентир и проверяйте несколько решений
  • График «локтя» построен на основе datamart_rfm

Сегментация клиентов в Python

Экспериментальный подход — анализ сегментов

  • Построить кластеризацию в точке «локтя» и рядом с ней
  • Проанализировать свойства сегментов — средние значения RFM
  • Сравнить решения между собой и выбрать наиболее обоснованное с точки зрения бизнеса
Сегментация клиентов в Python

Экспериментальный подход — анализ сегментов

  • Предыдущее решение с 2 кластерами
  • Решение с 3 кластерами на том же нормализованном наборе RFM
Сегментация клиентов в Python

Давайте потренируемся!

Сегментация клиентов в Python

Preparing Video For Download...