Chuẩn bị dữ liệu cho phân khúc

Machine Learning cho Marketing với Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Giả định mô hình

  • Bắt đầu với K-means
  • K-means hiệu quả khi dữ liệu 1) gần phân phối chuẩn (không lệch), và 2) đã chuẩn hóa (mean = 0, standard deviation = 1)
  • Mô hình thứ hai - NMF - có thể dùng trên dữ liệu thô, nhất là khi ma trận thưa
Machine Learning cho Marketing với Python

Khử lệch bằng biến đổi log

# Tùy chọn 1 - biến đổi log
wholesale_log = np.log(wholesale)
sns.pairplot(wholesale_log, diag_kind='kde')
plt.show()
Machine Learning cho Marketing với Python

Khám phá dữ liệu đã log-transform

Biểu đồ cặp sau biến đổi log

Machine Learning cho Marketing với Python

Khử lệch bằng biến đổi Box-Cox

# Tùy chọn 2 - biến đổi Box-Cox
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 cho Marketing với Python

Khám phá dữ liệu đã Box-Cox

Biểu đồ cặp Box-Cox

Machine Learning cho Marketing với Python

Chuẩn hóa dữ liệu

  • Trừ đi trung bình cột khỏi từng giá trị trong cột
  • Chia từng giá trị cột cho độ lệch chuẩn của cột
  • Sẽ dùng mô-đun StandardScaler() từ 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 cho Marketing với Python

Ayo berlatih!

Machine Learning cho Marketing với Python

Preparing Video For Download...