LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere NMF von sklearn.decomposition.
  • Erstelle eine NMF Instanz namens model mit 7 Komponenten. (7 ist die Anzahl der Zellen in einer LED Anzeige).
  • Wende die .fit_transform() Methode von model auf samples an. Weise das Ergebnis features zu.
  • Wende die Funktion show_as_image() auf jede Komponente des Modells an (Zugriff über model.components_), die sich in der Schleife befindet.
  • Weise digit_features die Zeile 0 von features 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)
Code bearbeiten und ausführen