Вибір кількості кластерів

Сегментація клієнтів у 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...