NMF învață părțile componente ale imaginilor
Acum aplică ce ai învățat despre NMF pentru a descompune setul de date cu cifre. Imaginile cifrelor îți sunt din nou oferite sub forma unui array 2D numit samples. De data aceasta, ai la dispoziție și o funcție show_as_image() care afișează imaginea codificată de orice 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()
După ce termini, aruncă o privire asupra graficelor și observă cum NMF a exprimat cifra ca sumă a componentelor!
Acest exercițiu face parte din cursul
Învățare nesupervizată în Python
Instrucțiuni pentru exercițiu
- Importă
NMFdinsklearn.decomposition. - Creează o instanță
NMFnumitămodelcu7componente. (7 este numărul de segmente ale unui afișaj LED). - Aplică metoda
.fit_transform()a luimodelasupra luisamples. Atribuie rezultatul variabileifeatures. - Pentru fiecare componentă a modelului (accesată prin
model.components_), apelează funcțiashow_as_image()pe acea componentă în interiorul buclei. - Atribuie rândul
0dinfeaturesvariabileidigit_features. - Afișează
digit_features.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)