NMF aprende las partes de las imágenes
Ahora utiliza lo que has aprendido sobre 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 mirar los gráficos y observa cómo NMF ha expresado el dígito como una suma de los componentes.
Este ejercicio forma parte del curso
Aprendizaje no supervisado en Python
Instrucciones de ejercicio
- Importa
NMF
desdesklearn.decomposition
. - Crea una instancia de
NMF
llamadamodel
con componentes de7
. (7 es el número de celdas de una pantalla LED ). - Aplica el método
.fit_transform()
demodel
asamples
. 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
0
defeatures
adigit_features
. - Imprime
digit_features
.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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)