NMF impara le parti delle immagini
Ora metti in pratica ciò che hai imparato su NMF per scomporre il dataset delle cifre. Ti vengono fornite di nuovo le immagini delle cifre come array 2D samples. Questa volta hai anche a disposizione una funzione show_as_image() che visualizza l'immagine codificata da qualsiasi array 1D:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Quando hai finito, prenditi un momento per guardare i grafici e nota come NMF ha rappresentato la cifra come somma dei componenti!
Questo esercizio fa parte del corso
Apprendimento non supervisionato in Python
Istruzioni dell'esercizio
- Importa
NMFdasklearn.decomposition. - Crea un'istanza di
NMFchiamatamodelcon7componenti. (7 è il numero di celle in un display a LED). - Applica il metodo
.fit_transform()dimodelasamples. Assegna il risultato afeatures. - Per ciascun componente del modello (accessibile tramite
model.components_), applica la funzioneshow_as_image()a quel componente all'interno del ciclo. - Assegna la riga
0difeaturesadigit_features. - Stampa
digit_features.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import NMF
____
# Create an NMF model: model
model = ____
# Apply fit_transform to samples: features
features = ____
# Call show_as_image on each component
for component in model.components_:
____
# Select the 0th row of features: digit_features
digit_features = ____
# Print digit_features
print(digit_features)