Zacznij terazZacznij za darmo

NMF uczy się części obrazów

Wykorzystaj zdobytą wiedzę o NMF, aby rozłożyć zbiór danych z cyframi. Tak jak wcześniej, obrazy cyfr są dostępne w postaci tablicy 2D samples. Tym razem masz też do dyspozycji funkcję show_as_image(), która wyświetla obraz zakodowany w dowolnej tablicy 1D:

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

Po wykonaniu zadania przejrzyj wykresy i zwróć uwagę, jak NMF wyraża cyfrę jako sumę komponentów!

To ćwiczenie jest częścią kursu

Uczenie nienadzorowane w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zaimportuj NMF z sklearn.decomposition.
  • Utwórz instancję NMF o nazwie model z 7 komponentami (7 to liczba segmentów wyświetlacza LED).
  • Zastosuj metodę .fit_transform() modelu model do samples. Wynik przypisz do features.
  • Dla każdego komponentu modelu (dostępnego przez model.components_) wywołaj wewnątrz pętli funkcję show_as_image() z tym komponentem jako argumentem.
  • Przypisz wiersz 0 z features do digit_features.
  • Wyświetl digit_features.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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)
Edytuj i uruchom kod