ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • Importe NMF de sklearn.decomposition.
  • Crie uma instância NMF chamada model com componentes 7. (7 é o número de células em uma tela LED ).
  • Aplique o método .fit_transform() de model a samples. Atribua o resultado a features.
  • Para cada componente do modelo (acessado por meio de model.components_), aplique a função show_as_image() a esse componente dentro do loop.
  • Atribua a linha 0 de features a digit_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)
Editar e executar código