NMF apprend les parties des images
Mettez maintenant en pratique ce que vous avez appris sur NMF pour décomposer l'ensemble de données des chiffres. On vous fournit de nouveau les images de chiffres sous forme de tableau 2D samples. Cette fois, on vous donne aussi une fonction show_as_image() qui affiche l'image encodée par n'importe quel tableau 1D :
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Une fois terminé, prenez un moment pour parcourir les graphiques et remarquez comment NMF a exprimé le chiffre comme une somme de composantes !
Cette activité fait partie du cours
Unsupervised Learning in Python
Instructions de l’exercice
- Importez
NMFdepuissklearn.decomposition. - Créez une instance
NMFnomméemodelavec7composantes. (7 correspond au nombre de segments dans un afficheur à DEL.) - Appliquez la méthode
.fit_transform()demodelàsamples. Assignez le résultat àfeatures. - Pour chaque composante du modèle (accessible via
model.components_), appliquez la fonctionshow_as_image()à cette composante dans la boucle. - Assignez la ligne
0defeaturesàdigit_features. - Affichez
digit_features.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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)