Aan de slagGa gratis aan de slag

NMF leert de delen van afbeeldingen

Gebruik nu wat je over NMF hebt geleerd om de digits-gegevensset te ontbinden. Je krijgt de cijferafbeeldingen opnieuw als een 2D-array samples. Dit keer krijg je ook een functie show_as_image() waarmee je de afbeelding kunt weergeven die wordt gecodeerd door een willekeurige 1D-array:

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    plt.figure()
    plt.imshow(bitmap, cmap='gray', interpolation='nearest')
    plt.colorbar()
    plt.show()

Als je klaar bent, neem dan even de tijd om de plots te bekijken en te zien hoe NMF het cijfer heeft uitgedrukt als een som van componenten!

Deze oefening maakt deel uit van de cursus

Unsupervised Learning in Python

Cursus bekijken

Oefeninstructies

  • Importeer NMF uit sklearn.decomposition.
  • Maak een NMF-instantie met de naam model met 7 componenten. (7 is het aantal segmenten in een LED-display).
  • Pas de methode .fit_transform() van model toe op samples. Ken het resultaat toe aan features.
  • Pas op elke component van het model (toegankelijk via model.components_) de functie show_as_image() toe binnen de lus.
  • Ken rij 0 van features toe aan digit_features.
  • Print digit_features.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren