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'attribution 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 fixer 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) tester et apprendre
  • Nous verrons le critère du coude pour une estimation initiale
Machine Learning pour le marketing en Python

Méthode du critère du coude

  • Itérer sur plusieurs valeurs de k
  • Exécuter le regroupement pour chacune sur les mêmes données
  • Calculer la somme des carrés des erreurs (SSE) pour chacune
  • Tracer SSE selon k et repérer le « coude » : gains marginaux décroissants dans la réduction d'erreur
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

Repérer le nombre optimal de segments

Méthode du critère du coude

Machine Learning pour le marketing en Python

Méthode tester et apprendre

  • D'abord, calculer mathématiquement le nombre optimal de segments
  • Construire des segmentations avec des valeurs autour du k optimal
  • Examiner les résultats et choisir la plus pertinente pour l'entreprise (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...