NMF aprende as partes das imagens
Agora, use o que você aprendeu sobre NMF para decompor o conjunto de dados de dígitos. Você recebe novamente as imagens dos dígitos como uma matriz 2D samples
. Desta vez, você também recebe uma função show_as_image()
que exibe a imagem codificada por qualquer 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()
Depois que você terminar, reserve um momento para analisar os gráficos e observe como NMF expressou o dígito como uma soma dos componentes!
Este exercício faz parte do curso
Aprendizado não supervisionado em Python
Instruções de exercício
- Importe
NMF
desklearn.decomposition
. - Crie uma instância
NMF
chamadamodel
com componentes7
. (7 é o número de células em uma tela LED ). - Aplique o método
.fit_transform()
demodel
asamples
. Atribua o resultado afeatures
. - Para cada componente do modelo (acessado por meio de
model.components_
), aplique a funçãoshow_as_image()
a esse componente dentro do loop. - Atribua a linha
0
defeatures
adigit_features
. - Imprima
digit_features
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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)