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 do exercício
- Importe
NMFdesklearn.decomposition. - Crie uma instância
NMFchamadamodelcom componentes7. (7 é o número de células em uma tela LED ). - Aplique o método
.fit_transform()demodelasamples. 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
0defeaturesadigit_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)