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
Oefeninstructies
- Importeer
NMFuitsklearn.decomposition. - Maak een
NMF-instantie met de naammodelmet7componenten. (7 is het aantal segmenten in een LED-display). - Pas de methode
.fit_transform()vanmodeltoe opsamples. Ken het resultaat toe aanfeatures. - Pas op elke component van het model (toegankelijk via
model.components_) de functieshow_as_image()toe binnen de lus. - Ken rij
0vanfeaturestoe aandigit_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)