Kom igångKom igång gratis

NMF lär sig delar av bilder

Nu ska du använda det du har lärt dig om NMF för att dekomponera sifferdatasetet. Du får återigen sifferbilderna som en tvådimensionell array samples. Den här gången får du också en funktion show_as_image() som visar bilden som kodas av en godtycklig endimensionell array:

def show_as_image(sample):
    bitmap = sample.reshape((13, 8))
    plt.figure()
    plt.imshow(bitmap, cmap='gray', interpolation='nearest')
    plt.colorbar()
    plt.show()

När du är klar, ta en stund och titta igenom plottarna – lägg märke till hur NMF uttrycker siffran som en summa av komponenterna!

Den här övningen är en del av kursen

Oövervakad inlärning i Python

Visa kurs

Övningsinstruktioner

  • Importera NMF från sklearn.decomposition.
  • Skapa en NMF-instans med namnet model och 7 komponenter. (7 är antalet segment i en LED-display).
  • Tillämpa metoden .fit_transform()model med samples som argument. Tilldela resultatet till features.
  • Tillämpa funktionen show_as_image() på varje komponent i modellen (tillgänglig via model.components_) inuti loopen.
  • Tilldela rad 0 i features till digit_features.
  • Skriv ut digit_features.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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)
Redigera och kör kod