Créer des segments clients et produits

Machine Learning pour le marketing en Python

Karolis Urbonas

Head of Analytics & Science, Amazon

Étapes de segmentation avec K-means

Segmentation avec K-means (pour 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 pour le marketing en Python

Étapes de segmentation avec NMF

Segmentation avec NMF (k clusters) :

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

Extraction de l'affectation des segments :

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 pour le marketing en Python

Comment initialiser le nombre de segments ?

  • K-means et NMF exigent de fixer un nombre de clusters (k)
  • Deux façons de définir k : 1) Mathématiquement, 2) Test & learn
  • Nous verrons la méthode du coude pour une première estimation
Machine Learning pour le marketing en Python

Méthode du coude

  • Itérer sur plusieurs valeurs de k
  • Lancer le clustering pour chacune sur les mêmes données
  • Calculer la somme des carrés des erreurs (SSE) pour chacune
  • Tracer SSE en fonction de k et repérer le « coude » : gains marginaux décroissants
Machine Learning pour le marketing en Python

Calculer la somme des carrés des erreurs et tracer les résultats

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 pour le marketing en Python

Identifier le nombre optimal de segments

Méthode du coude

Machine Learning pour le marketing en Python

Méthode « Test & learn »

  • D'abord, calculer mathématiquement le nombre optimal de segments
  • Construire plusieurs segmentations autour de la valeur k optimale
  • Examiner les résultats et choisir celle la plus pertinente métier (Pouvez-vous nommer les segments ? Sont-ils ambigus/superposés ?)
Machine Learning pour le marketing en Python

Créons des segments clients !

Machine Learning pour le marketing en Python

Preparing Video For Download...