ГоловнаСтаттіМетод головних компонент

PCA: Обертання даних на основні компоненти

Як власні вектори коваріаційної матриці виявляють напрямки максимальної варіативності в наборі даних, і як це дозволяє його стиснути.

mysimulator teamОновлено — червень 2026≈ 7 хв читання▶ Відкрити симуляцію

Поворот облака, поки лінії розповсюдження не вирівнюються з осями

Основний аналіз компонент (PCA) шукає поворот набору даних, який робить його структуру якомога простішою для опису. Візьміть розсіювання точок у двох або більше корельованих вимірах — зріст і вага або піксельні інтенсивності обличчя — і майже завжди є напрямок, вздовж якого точки найбільш розсіяні. PCA знаходить цей напрямок першим, потім найширший напрямок, перпендикулярний йому, і так далі, створюючи новий набір осей, званий головними компонентами, які за конструкцією некорельовані один з одним.

Ключова величина — це коваріаційна матриця даних. Для центрованих даних (середнє значення віднімається з кожного виміру), C = (1/n) XᵀX підсумовує, як кожна пара вимірів варіюється разом. Її діагональ містить дисперсію кожного оригінального виміру; її позадіагональні записи містять коефіцієнти варіації, які роблять хмар даних нахиленою, а не вирівняною вздовж осі.

жива демонстрація · пов'язана симуляція● LIVE

Вектори влаштування є осями, власні значення – варіація

PCA математично є розкладом власних чисел коваріансної матриці. Кожен вектор власної кількості C вказує на основний компонент і його супутні власне значення точно відповідають дисперсії даних, що проектуються на цей напрямок.

C v_i = λ_i v_i v_i — i-й власний вектор (напрямок основного компонента, одинична довжина) λ_i — i-е власне значення (пояснена дисперсія в цьому напрямку) Сортування власних значень від найбільшого до найменшого порядкує компоненти від найбільш до найменш пояснених. Перший основний компонент вказує на напрямок максимальної дисперсії; другий – на напрямок максимальної залишкової дисперсії, що є перпендикулярним першому, і так далі, щоб кожний компонент після першого захоплював будь-яку дисперсію, яку не могли зафіксувати попередні.

This decomposition allows us to reduce the dimensionality of our data while retaining most of its variance.

C v_i = λ_i v_i

v_i  — i-th eigenvector (principal component direction, unit length)
λ_i  — i-th eigenvalue  (variance explained along that direction)

Видалення вимірів без втрати багато інформації

Оскільки власні значення точно повідомляють вам, яку варіацію несе кожен осяг, PCA надає принциповий спосіб стискання даних: зберігайте верхні k компонентів і відкидайте решту, і ви зберігаєте частку (λ₁ + ... + λ_k) / (λ₁ + ... + λ_d) загальної варіації. Набір корельованих ознак часто має більшу частину своєї варіації сконцентровано в перших двох або трьох компонентах — тому графіки PCA високовимірних даних (вираження генів, уривки зображень, опитування) часто показують змістовний 2D або 3D-образ, незважаючи на те, що оригінальні дані мали десятки вимірів.

У практиці це обчислюється безпосередньо шляхом розкладання власного значення коваріаційної матриці або — більш стабільно для реальних даних — шляхом сингулярного розгортання (SVD) центрованої матриці X = UΣVᵀ, де стовпчики V є основними компонентами, а сингулярні числа в Σ є квадратними коренями власних значень. SVD ніколи не утворює XᵀX явно, що важливо, оскільки це множення матриць може посилити помилку плаваючого кома.

Що таке PCA не є

PCA лише знаходить лінійні комбінації оригінальних ознак, тому він не може розгорнути викривлену мантію — хмарка у формі швейцарського циркуля залишається перекрученою незалежно від того, як ви її повертаєте, і нелінійні методи, такі як t-SNE або UMAP, існують саме для вирішення цієї проблеми. Він також чутливий до масштабу: ознака, виміряна кілометрами, домінуватиме над ознакою, виміряною міліметрами лише через одиниці, якщо спочатку не привести кожну вісь до однакового дисперсійного значення. І PCA максимізує дисперсію, а не обов’язково інтерпретованість або розділення класів — напрямок із великою дисперсією все ще може бути безглуздим для розрізнення двох категорій, що пояснює існування керованих альтернатив, таких як Лінійна дискримінантна аналіз, для завдань класифікації.

Frequently asked questions

Яка різниця між PCA та кореляцією?

Кореляція вимірює лінійний зв’язок між двома окремими змінними. PCA розглядає всі змінні разом через коваріаційну матрицю і визначає комбіновані напрямки (головні компоненти), які пояснюють найбільшу загальну дисперсію в усьому наборі даних, що є іншим, більш високорівневим питанням, ніж будь-яка однорідна кореляція між двома змінними.

Скільки головних компонент потрібно зберегти?

Загальне правило полягає в тому, щоб зберігати достатньо компонент, щоб пояснити цільову частку загальної дисперсії, зазвичай 90-95%. Побудова діаграми власних значень у порядку спадання (scree plot) та пошук точки, де вони згладжуються – ‘коліна’ – є стандартною евристикою; компоненти після цієї точки додають незначну пояснювальну силу.

Чи потребує PCA нормального розподілу даних?

Ні. PCA — це чисто геометрична операція на коваріаційній матриці і не потребує жодних припущень щодо розподілу, щоб працювати. Нормальність має значення лише тоді, коли ви хочете прив’язати до компонент статистичні тести значущості або якщо ви покладаєтесь на гаусові інтерпретації даних, що проектуються.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте PCA і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію PCA

Що ви знайшли?

Додати кроки відтворення (опційно)