NMF lernt die Teile von Bildern
Nutze nun das, was du über NMF gelernt hast, um den Datensatz mit den Ziffern zu zerlegen. Du bekommst wieder die Zahlenbilder als 2D-Array samples
. Diesmal steht dir auch eine Funktion show_as_image()
zur Verfügung, die das von einem beliebigen 1D-Array kodierte 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, nimm dir einen Moment Zeit, um die Diagramme durchzusehen und bemerke, wie NMF die Zahl als Summe der Komponenten ausgedrückt hat!
Diese Übung ist Teil des Kurses
Unüberwachtes Lernen in Python
Anleitung zur Übung
- Importiere
NMF
vonsklearn.decomposition
. - Erstelle eine
NMF
Instanz namensmodel
mit7
Komponenten. (7 ist die Anzahl der Zellen in einer LED Anzeige). - Wende die
.fit_transform()
Methode vonmodel
aufsamples
an. Weise das Ergebnisfeatures
zu. - Wende die Funktion
show_as_image()
auf jede Komponente des Modells an (Zugriff übermodel.components_
), die sich in der Schleife befindet. - Weise
digit_features
die Zeile0
vonfeatures
zu. - Gib
digit_features
aus.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)