NMF вчиться виділяти частини зображень
Тепер застосуйте те, що ви дізналися про NMF, щоб розкласти набір даних із цифрами. Знову ж таки, зображення цифр подано як 2D-масив samples. Цього разу вам також надано функцію show_as_image(), яка відображає зображення, закодоване будь-яким 1D-масивом:
def show_as_image(sample):
bitmap = sample.reshape((13, 8))
plt.figure()
plt.imshow(bitmap, cmap='gray', interpolation='nearest')
plt.colorbar()
plt.show()
Коли закінчите, перегляньте графіки й зверніть увагу, як NMF подає цифру як суму компонент!
Ця вправа є частиною курсу
Наглядове навчання в Python
Інструкції до вправи
- Імпортуйте
NMFзsklearn.decomposition. - Створіть екземпляр
NMFпід назвоюmodelіз7компонентами. (7 — це кількість сегментів у LED-дисплеї). - Застосуйте метод
.fit_transform()об'єктаmodelдоsamples. Присвойте результат зміннійfeatures. - До кожної компоненти моделі (доступ через
model.components_) застосуйте функціюshow_as_image()до цієї компоненти всередині циклу. - Присвойте рядок
0зfeaturesдоdigit_features. - Виведіть
digit_features.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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)