Центрування та масштабування змінних

Сегментація клієнтів у Python

Karolis Urbonas

Head of Data Science, Amazon

Виявлення проблеми

  • Проаналізуйте ключові статистики набору даних
  • Порівняйте середнє та стандартне відхилення
datamart_rfm.describe()

Сегментація клієнтів у Python

Центрування змінних з різними середніми

  • K-means добре працює на змінних з однаковим середнім
  • Центрування: відніміть середнє значення від кожного спостереження
datamart_centered = datamart_rfm - datamart_rfm.mean()
datamart_centered.describe().round(2)

Сегментація клієнтів у Python

Масштабування змінних з різною дисперсією

  • K-means краще працює на змінних з однаковою дисперсією / стандартним відхиленням
  • Масштабування: поділіть кожну змінну на її стандартне відхилення
datamart_scaled = datamart_rfm / datamart_rfm.std()
datamart_scaled.describe().round(2)

Сегментація клієнтів у Python

Поєднання центрування та масштабування

  • Відніміть середнє та поділіть на стандартне відхилення вручну
  • Або скористайтеся скейлером з бібліотеки scikit-learn (повертає обʼєкт numpy.ndarray)
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(datamart_rfm)
datamart_normalized = scaler.transform(datamart_rfm)

print('mean: ', datamart_normalized.mean(axis=0).round(2)) print('std: ', datamart_normalized.std(axis=0).round(2))
mean:  [-0. -0.  0.]
std:  [1. 1. 1.]
Сегментація клієнтів у Python

Перевірте різні підходи самостійно!

Сегментація клієнтів у Python

Preparing Video For Download...