Bouw klant- en productsegmentatie

Machine Learning voor marketing in Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Stappen voor segmentatie met K-means

Segmentatie met K-means (voor k clusters):

from sklearn.cluster import KMeans

kmeans=KMeans(n_clusters=k)
kmeans.fit(wholesale_scaled_df)
wholesale_kmeans4 = wholesale.assign(segment = kmeans.labels_)
Machine Learning voor marketing in Python

Stappen voor segmentatie met NMF

Segmentatie met NMF (k clusters):

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

Segmenttoewijzing extraheren:

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 voor marketing in Python

Hoe kies je het aantal segmenten?

  • Zowel K-means als NMF vereisen een aantal clusters (k)
  • Twee manieren om k te kiezen: 1) Wiskundig, 2) Test & learn
  • We bekijken de elleboogmethode voor een grove schatting
Machine Learning voor marketing in Python

Elleboogmethode

  • Itereer over meerdere k-waarden
  • Voer voor elke k clustering uit op dezelfde data
  • Bereken de som van kwadratische fouten (SSE) per k
  • Plot SSE tegen k en zoek de “elleboog”: afnemende winst in foutreductie
Machine Learning voor marketing in Python

Bereken SSE en plot de resultaten

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 voor marketing in Python

Het optimale aantal segmenten bepalen

Methode van de elleboog

Machine Learning voor marketing in Python

Test-&-learn-methode

  • Bereken eerst het wiskundig optimale aantal segmenten
  • Bouw segmentaties met meerdere waarden rond de optimale k
  • Verken de resultaten en kies wat zakelijk het meest relevant is (Kun je de segmenten benoemen? Zijn ze ambigu/overlappend?)
Machine Learning voor marketing in Python

Laten we klantsegmenten bouwen!

Machine Learning voor marketing in Python

Preparing Video For Download...