NMF lär sig delar av bilder
Nu ska du använda det du har lärt dig om NMF för att dekomponera sifferdatasetet. Du får återigen sifferbilderna som en tvådimensionell array samples. Den här gången får du också en funktion show_as_image() som visar bilden som kodas av en godtycklig endimensionell array:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
När du är klar, ta en stund och titta igenom plottarna – lägg märke till hur NMF uttrycker siffran som en summa av komponenterna!
Den här övningen är en del av kursen
Oövervakad inlärning i Python
Övningsinstruktioner
- Importera
NMFfrånsklearn.decomposition. - Skapa en
NMF-instans med namnetmodeloch7komponenter. (7 är antalet segment i en LED-display). - Tillämpa metoden
.fit_transform()påmodelmedsamplessom argument. Tilldela resultatet tillfeatures. - Tillämpa funktionen
show_as_image()på varje komponent i modellen (tillgänglig viamodel.components_) inuti loopen. - Tilldela rad
0ifeaturestilldigit_features. - Skriv ut
digit_features.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)