Segmentarea clienților și produselor

Machine Learning pentru Marketing în Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Pași de segmentare cu K-means

Segmentare cu K-means (pentru k clustere):

from sklearn.cluster import KMeans

kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Machine Learning pentru Marketing în Python

Pași de segmentare cu NMF

Segmentare cu NMF (k clustere):

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

Extragerea atribuirii segmentelor:

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 pentru Marketing în Python

Cum se inițializează numărul de segmente?

  • Atât K-means, cât și NMF necesită setarea numărului de clustere (k)
  • Două moduri de a defini k: 1) Matematic, 2) Test & learn
  • Vom explora metoda matematică a criteriului cotului pentru o estimare aproximativă
Machine Learning pentru Marketing în Python

Metoda criteriului cotului

  • Iterați prin mai multe valori k
  • Rulați clustering pentru fiecare pe aceleași date
  • Calculați suma erorilor pătratice (SSE) pentru fiecare
  • Reprezentați grafic SSE față de k și identificați „cotul" – îmbunătățiri incrementale în scădere
Machine Learning pentru Marketing în Python

Calculați suma erorilor pătratice și reprezentați grafic rezultatele

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 pentru Marketing în Python

Identificarea numărului optim de segmente

Metoda criteriului cotului

Machine Learning pentru Marketing în Python

Metoda test & learn

  • Mai întâi, calculați numărul matematic optim de segmente
  • Construiți segmentarea cu mai multe valori în jurul valorii optime k
  • Explorați rezultatele și alegeți-l pe cel mai relevant din punct de vedere business (Puteți numi segmentele? Sunt ambigue/suprapuse?)
Machine Learning pentru Marketing în Python

Să construim segmente de clienți!

Machine Learning pentru Marketing în Python

Preparing Video For Download...