НачатьНачать бесплатно

NMF выделяет части изображений

Теперь применим NMF для разложения набора данных с цифрами. Изображения цифр снова представлены в виде двумерного массива samples. На этот раз вам также предоставлена функция show_as_image(), которая отображает изображение, закодированное в виде одномерного массива:

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 — это количество сегментов на светодиодном дисплее).
  • Примените метод .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)
Редактировать и запускать код