O NMF aprende as partes das imagens
Agora usa o que você aprendeu sobre NMF para decompor o conjunto de dados de dígitos. Você recebe de novo as imagens dos dígitos como uma matriz 2D samples
. Desta vez, você também tem uma função show_as_image()
que mostra 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()
Quando terminar, dá uma olhada nos gráficos e vê como o NMF mostrou o número como uma soma dos componentes!
Este exercício faz parte do curso
Aprendizado não supervisionado em Python
Instruções do exercício
- Importe
NMF
desklearn.decomposition
. - Crie uma instância do
NMF
chamadamodel
com os componentes7
. (7 é o número de células em um display LED). - Use o método “
.fit_transform()
” (copiar e colar) do sitemodel
parasamples
. Atribua o resultado afeatures
. - Para cada componente do modelo (acessado via
model.components_
), use a funçãoshow_as_image()
nesse componente dentro do loop. - Atribuir a linha
0
defeatures
adigit_features
. - Imprima
digit_features
.
Exercício interativo prático
Experimente este exercício completando 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)