LoslegenKostenlos starten

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

<Kurs>Unsupervised Learning in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Ü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