LoslegenKostenlos loslegen

NMF lernt die Teile von Bildern

Jetzt kannst du das, was du über NMF gelernt hast, nutzen, um den Datensatz mit den Ziffern zu zerlegen. Du bekommst wieder die Ziffernbilder als 2D-Array „ samples “. Diesmal gibt's auch eine Funktion „ show_as_image() “, die das Bild anzeigt, das mit einem beliebigen 1D-Array verschlüsselt wurde:

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 Diagramme an und achte darauf, wie NMF die Ziffer als Summe der Komponenten dargestellt hat!

Diese Übung ist Teil des Kurses

Unüberwachtes Lernen in Python

Kurs anzeigen

Anleitung zur Übung

  • Importiere NMF aus sklearn.decomposition.
  • Erstell eine Instanz namens „ NMF ” mit dem Namen „ model ” und den folgenden Komponenten: „ 7 ”. (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 auf jede Komponente des Modells (aufrufbar über „ model.components_ “) die Funktion „ show_as_image() “ innerhalb der Schleife an.
  • Weis die Zeilen 0 en von features an digit_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