El NMF identifica las partes de las imágenes
Ahora usa lo que has aprendido sobre el NMF para descomponer el conjunto de datos de dígitos. De nuevo se te dan las imágenes de los dígitos como una matriz 2D samples. Esta vez, también se te proporciona una función show_as_image() que muestra la imagen codificada por cualquier matriz 1D:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Cuando hayas terminado, tómate un momento para echar un vistazo a los gráficos y fíjate en cómo el NMF ha representado el dígito como una suma de los componentes.
Este ejercicio forma parte del curso
Aprendizaje no supervisado en Python
Instrucciones del ejercicio
- Importa
NMFdesdesklearn.decomposition. - Crea una instancia de
NMFllamadamodelcon componentes de7. (7 es el número de celdas de una pantalla LED). - Aplica el método
.fit_transform()demodelasamples. Asigna el resultado afeatures. - A cada componente del modelo (al que se accede a través de
model.components_), aplícale la funciónshow_as_image()dentro del bucle. - Asigna la fila
0defeaturesadigit_features. - Imprime
digit_features.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)