Moyennes de segmentation NMF
Pour terminer, vous allez explorer visuellement les valeurs moyennes de la solution à 3 segments construite par NMF et la comparer à celle de K-means. Ici, vous allez extraire la matrice de caractéristiques W, que nous utiliserons pour obtenir l’affectation « dure » des segments en choisissant, pour chaque client, la valeur de colonne (segment) ayant la valeur associée la plus élevée dans cette matrice.
Nous avons chargé la bibliothèque pandas sous le nom pd et la bibliothèque seaborn sous le nom sns. Le jeu de données brut wholesale a été importé, ainsi que l’instance NMF déjà ajustée à 3 segments sous le nom nmf. Le jeu de données components a été chargé en tant que DataFrame pandas.
Cet exercice fait partie du cours
Machine Learning pour le marketing en Python
Instructions
- Créez la matrice W en passant les valeurs transformées comme données, et les indices des components comme noms de colonnes.
- Attribuez le segment en sélectionnant le nom de la colonne pour laquelle la valeur correspondante est la plus grande.
- Calculez les valeurs moyennes des colonnes pour chaque segment.
- Représentez les valeurs moyennes sous forme de carte thermique (heatmap).
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create the W matrix
W = pd.DataFrame(data=nmf.___(wholesale), columns=components.index)
W.index = wholesale.index
# Assign the column name where the corresponding value is the largest
wholesale_nmf3 = wholesale.___(segment = W.idxmax(axis=1))
# Calculate the average column values per each segment
nmf3_averages = wholesale_nmf3.___('___').mean().round(0)
# Plot the average values as heatmap
sns.___(___.T, cmap='YlGnBu')
# Display the chart
plt.show()