Xây dựng phân khúc khách hàng và sản phẩm

Machine Learning cho Marketing với Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Các bước phân khúc với K-means

Phân khúc bằng K-means (với k cụm):

from sklearn.cluster import KMeans

kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Machine Learning cho Marketing với Python

Các bước phân khúc với NMF

Phân khúc bằng NMF (k cụm):

from sklearn.decomposition import NMF
nmf = NMF(k)
nmf.fit(wholesale)
components = pd.DataFrame(nmf.components_, columns=wholesale.columns)

Trích xuất gán phân khúc:

segment_weights = pd.DataFrame(nmf.transform(wholesale, columns=components.index)
segment_weights.index = wholesale.index
wholesale_nmf = wholesale.assign(segment = segment_weights.idxmax(axis=1))
Machine Learning cho Marketing với Python

Khởi tạo số phân khúc như thế nào?

  • Cả K-means và NMF đều cần đặt số cụm (k)
  • Hai cách xác định k: 1) Toán học, 2) Thử nghiệm & học hỏi
  • Ta sẽ xem phương pháp khuỷu tay để ước lượng sơ bộ
Machine Learning cho Marketing với Python

Phương pháp khuỷu tay

  • Lặp qua nhiều giá trị k
  • Chạy phân cụm cho mỗi giá trị trên cùng dữ liệu
  • Tính tổng sai số bình phương (SSE) cho từng giá trị
  • Vẽ SSE theo k và tìm “khuỷu tay” — mức cải thiện lỗi giảm dần
Machine Learning cho Marketing với Python

Tính SSE và vẽ kết quả

sse = {}
for k in range(1, 11):
    kmeans=KMeans(n_clusters=k, random_state=333)
    kmeans.fit(wholesale_scaled_df)
    sse[k] = kmeans.inertia_
plt.title('Elbow criterion method chart')
sns.pointplot(x=list(sse.keys()), y=list(sse.values()))
plt.show()
Machine Learning cho Marketing với Python

Xác định số phân khúc tối ưu

Phương pháp khuỷu tay

Machine Learning cho Marketing với Python

Phương pháp thử nghiệm và điều chỉnh

  • Trước tiên, tính số phân khúc tối ưu về mặt toán học
  • Xây phân khúc với nhiều giá trị quanh k tối ưu
  • Khảo sát kết quả, chọn phương án phù hợp kinh doanh nhất (Đặt tên phân khúc được không? Có mơ hồ/chồng lấp không?)
Machine Learning cho Marketing với Python

Hãy xây phân khúc khách hàng!

Machine Learning cho Marketing với Python

Preparing Video For Download...