Medie della segmentazione NMF
Infine, esplorerai visivamente i valori medi della soluzione a 3 segmenti costruita con NMF e potrai confrontarla con quella di K-means. Qui estrarrai la matrice delle caratteristiche W, che useremo per ricavare l'assegnazione “hard” del segmento scegliendo, per ogni cliente, il nome della colonna (segmento) con il valore più alto in questa matrice.
Abbiamo caricato la libreria pandas come pd e la libreria seaborn come sns. L'insieme di dati grezzo wholesale è stato importato, così come l'istanza NMF già addestrata con 3 segmenti come nmf. Il dataset components è stato caricato come DataFrame di pandas.
Questo esercizio fa parte del corso
Machine Learning per il marketing con Python
Istruzioni dell'esercizio
- Crea la matrice W passando i valori trasformati come dati e gli indici di components come nomi di colonna.
- Assegna il valore del segmento selezionando il nome della colonna in cui il valore corrispondente è il più grande.
- Calcola i valori medi delle colonne per ciascun segmento.
- Rappresenta le medie con una heatmap.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()