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
Instrukcje do ćwiczenia
- Zaimportuj
NMFzsklearn.decomposition. - Utwórz instancję
NMFo nazwiemodelz7komponentami (7 to liczba segmentów wyświetlacza LED). - Zastosuj metodę
.fit_transform()modelumodeldosamples. Wynik przypisz dofeatures. - 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
0zfeaturesdodigit_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)