LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Importiere NMF aus sklearn.decomposition.
  • Erstelle eine NMF-Instanz namens model mit 7 Komponenten. (7 ist die Anzahl der Zellen in einer LED-Anzeige).
  • Wende die Methode .fit_transform() von model auf samples an. Weise das Ergebnis features zu.
  • Wende für jede Komponente des Modells (zugreifbar über model.components_) innerhalb der Schleife die Funktion show_as_image() auf diese Komponente an.
  • Weise die Zeile 0 von features digit_features zu.
  • Gib digit_features aus.

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)
Code bearbeiten und ausführen