NMF se učí části obrázků
Teď využij, co sis o NMF osvojil/a, a rozlož datovou sadu číslic. Obrázky číslic máš opět k dispozici jako 2D pole samples. Tentokrát je k nim přidána i funkce show_as_image(), která zobrazí obrázek zakódovaný libovolným 1D polem:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Až budeš hotov/a, prohlédni si výsledné grafy a všimni si, jak NMF vyjádřila číslici jako součet jednotlivých komponent!
Toto cvičení je součástí kurzu
Unsupervised Learning in Python
Pokyny k cvičení
- Importuj
NMFzsklearn.decomposition. - Vytvoř instanci
NMFs názvemmodela7komponentami (7 odpovídá počtu segmentů na LED displeji). - Aplikuj metodu
.fit_transform()modelumodelnasamplesa výsledek přiřaď do proměnnéfeatures. - Pro každou komponentu modelu (přístupnou přes
model.components_) zavolej uvnitř cyklu funkcishow_as_image()s danou komponentou jako argumentem. - Přiřaď řádek
0zfeaturesdo proměnnédigit_features. - Vypiš
digit_features.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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)