变量的中心化与缩放

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 的 scaler(返回 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...