Підготовка даних для сегментації

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

Karolis Urbonas

Head of Analytics & Science, Amazon

Припущення моделей

  • Спершу почнемо з K-means
  • Кластеризація K-means добре працює, коли дані: 1) приблизно нормально розподілені (без перекосу) та 2) стандартизовані (mean = 0, standard deviation = 1)
  • Друга модель — NMF — підходить для «сирих» даних, особливо коли матриця розріджена
Machine Learning для маркетингу в Python

Зняття перекосу логперетворенням

# First option - log transformation
wholesale_log = np.log(wholesale)
sns.pairplot(wholesale_log, diag_kind='kde')
plt.show()
Machine Learning для маркетингу в Python

Дослідження логперетворених даних

Парні графіки після логперетворення

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

Зняття перекосу перетворенням Box–Cox

# Second option - Box-Cox transformation
from scipy import stats

def boxcox_df(x):
    x_boxcox, _ = stats.boxcox(x)
    return x_boxcox

wholesale_boxcox = wholesale.apply(boxcox_df, axis=0)
sns.pairplot(wholesale_boxcox, diag_kind='kde')
plt.show()
Machine Learning для маркетингу в Python

Дослідження даних після Box–Cox

Парні графіки після Box–Cox

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

Масштабування даних

  • Відніміть середнє стовпця від кожного його значення
  • Поділіть кожне значення стовпця на стандартне відхилення стовпця
  • Використаємо модуль StandardScaler() зі sklearn
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()

scaler.fit(wholesale_boxcox) wholesale_scaled = scaler.transform(wholesale_boxcox) wholesale_scaled_df = pd.DataFrame(data=wholesale_scaled, index=wholesale_boxcox.index, columns=wholesale_boxcox.columns) wholesale_scaled_df.agg(['mean','std']).round()
      Fresh  Milk  Grocery  Frozen  Detergents_Paper  Delicassen
mean   -0.0   0.0      0.0     0.0              -0.0         0.0
std     1.0   1.0      1.0     1.0               1.0         1.0
Machine Learning для маркетингу в Python

Давайте потренуємось!

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

Preparing Video For Download...