Побудуйте сегменти клієнтів і товарів

Machine Learning для маркетингу в Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Кроки сегментації з K-means

Сегментація за K-means (для кількості кластерів k):

from sklearn.cluster import KMeans

kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Machine Learning для маркетингу в Python

Кроки сегментації з NMF

Сегментація за NMF (k кількість кластерів):

from sklearn.decomposition import NMF
nmf = NMF(k)
nmf.fit(wholesale)
components = pd.DataFrame(nmf.components_, columns=wholesale.columns)

Отримання призначення сегмента:

segment_weights = pd.DataFrame(nmf.transform(wholesale, columns=components.index)
segment_weights.index = wholesale.index
wholesale_nmf = wholesale.assign(segment = segment_weights.idxmax(axis=1))
Machine Learning для маркетингу в Python

Як задати кількість сегментів?

  • І K-means, і NMF потребують заданої кількості кластерів (k)
  • Два способи визначити k: 1) Математично, 2) Перевірка на практиці
  • Розглянемо математичний метод «лікоть», щоб отримати орієнтовне значення
Machine Learning для маркетингу в Python

Метод «лікоть»

  • Переберіть кілька значень k
  • Запустіть кластеризацію для кожного на тих самих даних
  • Обчисліть суму квадратів похибок (SSE) для кожного
  • Побудуйте графік SSE проти k і знайдіть «лікоть» — де приріст зменшення похибки стає малим
Machine Learning для маркетингу в Python

Обчисліть суму квадратів похибок і побудуйте графік

sse = {}
for k in range(1, 11):
    kmeans=KMeans(n_clusters=k, random_state=333)
    kmeans.fit(wholesale_scaled_df)
    sse[k] = kmeans.inertia_
plt.title('Elbow criterion method chart')
sns.pointplot(x=list(sse.keys()), y=list(sse.values()))
plt.show()
Machine Learning для маркетингу в Python

Визначення оптимальної кількості сегментів

Метод «лікоть»

Machine Learning для маркетингу в Python

Метод «перевір і навчайся»

  • Спершу обчисліть математично оптимальну кількість сегментів
  • Побудуйте сегментацію для кількох значень навколо оптимального k
  • Оцініть результати й оберіть те, що найкраще відповідає бізнесу (Чи можна назвати сегменти? Чи вони не двозначні/не перекриваються?)
Machine Learning для маркетингу в Python

Створімо сегменти клієнтів!

Machine Learning для маркетингу в Python

Preparing Video For Download...