NMF lernt Bestandteile von Bildern
Wende nun das an, was du über NMF gelernt hast, um den Digits-Datensatz zu zerlegen. Die Ziffernbilder stehen dir wieder als 2D-Array namens samples zur Verfügung. Dieses Mal steht dir außerdem eine Funktion show_as_image() zur Verfügung, die das durch ein beliebiges eindimensionales Array codierte Bild anzeigt:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Wenn du fertig bist, schau dir die Plots in Ruhe an und achte darauf, wie NMF die Ziffer als Summe der Komponenten darstellt!
Diese Übung ist Teil des Kurses
Unsupervised Learning in Python
Anleitung zur Übung
- Importiere
NMFaussklearn.decomposition. - Erstelle eine
NMF-Instanz namensmodelmit7Komponenten. (7 ist die Anzahl der Zellen in einer LED-Anzeige). - Wende die Methode
.fit_transform()vonmodelaufsamplesan. Weise das Ergebnisfeatureszu. - Wende für jede Komponente des Modells (zugreifbar über
model.components_) innerhalb der Schleife die Funktionshow_as_image()auf diese Komponente an. - Weise die Zeile
0vonfeaturesdigit_featureszu. - Gib
digit_featuresaus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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)