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
NMFdesklearn.decomposition. - Crie uma instância do
NMFchamadamodelcom os componentes7. (7 é o número de células em um display LED). - Use o método “
.fit_transform()” (copiar e colar) do sitemodelparasamples. 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
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)