Центрирование и масштабирование переменных

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