Сжимаем и восстанавливаем
Часть раздела Обучение без учителя путешествия по Machine Learning на Coddy. Урок 31 из 51.
Оценки компонентов сканирования — это рецепт: начните со среднего сканирования, затем добавьте каждый шаблон, умноженный на его оценку. inverse_transform выполняет рецепт в обратном порядке и восстанавливает 64 пикселя:
pca = PCA(n_components=10).fit(X)
codes = pca.transform(X) # 10 чисел на каждое сканирование
rebuilt = pca.inverse_transform(codes) # снова 64 пикселяВот три скана, восстановленные с использованием всё большего количества чисел:
Небольшое количество чисел даёт размытое изображение, близкое к средней цифре; каждый добавленный компонент восстанавливает детали. Уже 20 чисел вместо 64 позволяют чётко её различить.
Задание
СреднеУмная ручка передаёт каждую цифру в виде k чисел PCA, которые считывает программа. Что теряется?
- Обучи PCA с
kкомпонентами наX. Сожми все сканы, затем восстанови их вrebuilt. - Выведи приведённые ниже строки; ошибка — это средняя абсолютная разница с
X. - Нарисуй самый новый скан,
X[-1], наaxs[0], а его восстановленную версию — наaxs[1]; для обоих используйgray_r. Покажи результат.
Для 7:
Sent: 7 numbers per scan instead of 64
Average pixel error: 1.739и нарисуй это. Затем Coddy описывает твои панели:
Попробуйте сами
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 сканов по 64 пикселя; последний скан пера находится в последней строке
digits = load_digits()
X = digits.data
k = int(input())
# Не изменяйте строки ниже
fig, axs = plt.subplots(1, 2)
axs[0].set_title("Scan")
axs[1].set_title(f"Rebuilt from {k} numbers")
# Напишите свой код ниже
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Обучение без учителя
1Поиск групп
Обучение без метокИзмерение сходстваK-Means вручнуюK-Means в scikit-learnПовторение: участники спортзала4Иерархическая кластеризация
Пошаговое объединениеАгломеративные моделиДендрограммыПовторение: породы собак7PCA на практике
64 измеренияКомпоненты как закономерностиСжимаем и восстанавливаемPCA перед обучением моделиПовторение: сканер лиц2Выбор k
ИнерцияМетод локтяОценки силуэтаМасштабирование перед кластеризациейПовторение: зоны доставкиПотренируйтесь самостоятельно: Онлайн-компилятор Python