Цей розділ самодостатній: у ньому зібрано теорію методу головних компонент,
потрібну для аудиторних задач (3classroom.md) і домашньої
програми (4task.md). Ширше ту саму теорію викладено в
Лекції 13.
Дані з багатьма ознаками (вимірами) важко аналізувати й візуалізувати, а методи на
основі відстаней (kNN, k-середніх) у високій розмірності псуються — це
прокляття розмірності. Метод головних компонент (англ. Principal
Component Analysis, PCA) будує нові ознаки — головні компоненти — як лінійні
комбінації вихідних, обираючи їх уздовж напрямків найбільшої дисперсії. Перші
кілька компонент несуть майже всю інформацію, тож рештою можна знехтувати.
Коваріаційна матрицяΣ набору з p ознак — це матриця p×p з
елементами Σjk=cov(Xj,Xk): на діагоналі — дисперсії,
поза діагоналлю — коваріації. Вона симетрична (Σjk=Σkj),
а її слід tr(Σ)=∑jsXj2 дорівнює загальній
дисперсії даних. Для двох ознак
Σ=(sX2cov(X,Y)cov(X,Y)sY2).
Дільник n−1 чи n. Заміна дільника домножує всю Σ на сталу, тож
власні вектори й частки дисперсії не змінюються. Ми беремо n−1.
2.3 Власні значення й вектори; головні компоненти #
Ненульовий вектор v — власний вектор матриці Σ з власним значеннямλ, якщо Σv=λv. Дисперсія проєкцій центрованих даних на
одиничний напрямок v дорівнює v⊤Σv, і максимізує її власний вектор
із найбільшим λ.
Головні компоненти — власні вектори Σ, впорядковані за спаданням
власних значень. Дисперсія даних уздовж i-ї компоненти дорівнює λi.
Компоненти ортогональні (бо Σ симетрична).
Для матриці 2×2 власні значення знаходять із характеристичного
рівняння
det(Σ−λI)=0⟺λ2−(trΣ)λ+detΣ=0.
Для кожного кореня λ власний вектор дістають, розв’язуючи однорідну систему
(Σ−λI)v=0, і нормують його до одиничної довжини.
Проєкція центрованого об’єкта xi на компоненту v: ti=v⊤(xi−xˉ).
Частка поясненої дисперсіїi-ї компоненти:
λ1+⋯+λpλi=tr(Σ)λi.
Сума часток перших k компонент — накопичена пояснена дисперсія. Число
компонент k обирають за порогом накопиченої дисперсії (напр., 0.90), за
«ліктем» scree-графіка власних значень або правилом Кайзера (λ>1 для
кореляційної матриці).
PCA(матриця даних X розміру n×p, число компонент k):
1. ЦЕНТРУВАННЯ: X_c = X - mean (за потреби ще / СКВ — стандартизація)
2. КОВАРІАЦІЯ: Sigma = (1/(n-1)) * X_c^T X_c
3. ВЛАСНІ ЗНАЧЕННЯ/ВЕКТОРИ: Sigma v = lambda v
4. ВПОРЯДКУВАННЯ за спаданням lambda
5. ВІДБІР перших k векторів -> W
6. ПРОЄКЦІЯ: Z = X_c · W
повернути Z, W, lambda, частки дисперсії
2.6 Демонстраційний приклад (на інших даних, ніж у задачах) #
Крок 3. Власні значення. Характеристичне рівняння:
(4−λ)2−9=0⇒4−λ=±3⇒
λ1=7,λ2=1(7+1=8=trΣ).
Власні вектори. Для λ1=7: (Σ−7I)v=0⇒−3v1+3v2=0⇒v1=v2,
тобто v1=21(1,1). Для λ2=1: 3v1+3v2=0⇒v2=−v1,
тобто v2=21(1,−1). Перевірка: (1,1)⋅(1,−1)=0 —
ортогональні.
Крок 6. Проєкція на 1-шу компоненту.ti=21((xi−4)+(yi−4)):