Зміст курсу
Метод Головних Компонент
Метод Головних Компонент
Зниження рівня шуму
Розглянемо, як працює PCA, коли алгоритм виступає не як етап обробки даних, а як основний етап. Задача зменшення шуму на зображеннях - саме такий випадок.
Пайплайн у цьому випадку виглядає так: ми завантажуємо в модель зашумлені дані, після чого можемо обробити інші дані за допомогою PCA, і модель відновить ці дані. Як це працює? За рахунок зменшення кількості головних компонент - залишаються буквально лише найбільш важливі елементи зображення, тобто зменшується шум.
Ми використовуємо набір даних USPS з числами та бібліотеку scikit-learn
:
import numpy as np
з sklearn.datasets import fetch_openml
з sklearn.preprocessing import MinMaxScaler
from sklearn.model_selection import train_test_split
X, y = fetch_openml(data_id = 41082, as_frame = False, return_X_y = True)
X = MinMaxScaler().fit_transform(X)
Додамо трохи шуму до наших зображень:
X_train, X_test, y_train, y_test = train_test_split(
X, y, stratify = y, random_state = 0, train_size = 1_000, test_size = 100
)
rng = np.random.RandomState(0)
noise = rng.normal(scale = 0.25, size = X_test.shape)
X_test_noisy = X_test + noise
noise = rng.normal(scale = 0.25, size = X_train.shape)
X_train_noisy = X_train + noise
Створимо модель РСА:
from sklearn.decomposition import PCA
pca_model = PCA(n_components=40)
pca_model.fit(X_train_noisy)
Давайте подивимося, що з цього вийшло! Початкові зашумлені зображення:
І ось результат роботи РСА:
Дякуємо за ваш відгук!