📊 Візуалізатор PCA та SVD — Метод Головних Компонент
Генеруйте 2D датасет, обчислюйте матрицю коваріації, діагоналізуйте для головних компонент та спостерігайте геометричне розкладання SVD. Пояснена дисперсія в реальному часі.
Генеруйте 2D датасет, обчислюйте матрицю коваріації, діагоналізуйте для головних компонент та спостерігайте геометричне розкладання SVD. Пояснена дисперсія в реальному часі.
Ця симуляція показує, як метод головних компонент (PCA) виявляє напрямки найбільшої дисперсії у хмарі 2D-точок. За згенерованими точками вона обчислює вибіркове середнє, будує коваріаційну матрицю 2×2 C = XᵀX/(n−1) і аналітично розв'язує її характеристичне рівняння, щоб отримати два власні значення λ₁ ≥ λ₂ та їхні ортогональні власні вектори. Саме ці власні вектори і є осями головних компонент, намальованими на полотні.
Повзунки задають кількість точок, розкиди σₓ і σᵧ, поворот θ, що вносить кореляцію між осями, та гаусів шум, тож ви можете спостерігати, як коваріаційна матриця і стовпчики поясненої дисперсії оновлюються в реальному часі. PC1 слідує вздовж довгої осі еліпса даних, PC2 — вздовж короткої. Та сама математика лежить в основі зменшення розмірності, стиснення зображень через усічене SVD, «власних облич» (eigenfaces) і факторних моделей у фінансах.
Вона генерує хмару 2D-точок і застосовує до неї метод головних компонент (PCA). Осі головних компонент (PC1 та PC2) проведені через середнє значення даних, масштабовані за стандартним відхиленням, а стовпчикова діаграма показує, яку частку загальної дисперсії пояснює кожна компонента.
Сторінка центрує дані, будує коваріаційну матрицю 2×2 C = XᵀX/(n−1) і знаходить її власні значення за квадратичною формулою через слід і визначник. Кожен власний вектор потім обчислюється в замкнутому вигляді, тож PC1 і PC2 є точними, а не отриманими ітеративно.
N точок задає кількість вибірок; σₓ та σᵧ визначають розкид уздовж двох базових осей; Поворот θ нахиляє цю систему координат, вносячи кореляцію між x і y; а Шум додає додаткове ізотропне гаусове тремтіння. Зміна будь-якого повзунка перегенеровує хмару точок і повторно обчислює PCA.
Коефіцієнт поясненої дисперсії для компоненти — це її власне значення, поділене на суму всіх власних значень, EVRₖ = λₖ/Σλⱼ. Стовпчик PC1 показує частку загального розкиду, яку охоплює найдовша вісь. Для кругової хмари обидва стовпчики близькі до 50%; для сильно витягнутого еліпса PC1 наближається до 100%.
Пунктирний еліпс — це контур на відстані двох стандартних відхилень від середнього вздовж кожної головної осі. Його напівосі дорівнюють 2√λ₁ та 2√λ₂, і він повернутий так, щоб збігатися з власними векторами. Для гаусових даних він охоплює приблизно 86% точок, даючи наочне узагальнення коваріації.
Показане число обумовленості — це відношення двох власних значень, λ₁/λ₂. Велике значення означає, що дані сильно витягнуті, а коваріаційна матриця близька до виродженої, тож другорядний напрямок несе мало інформації. Коли PC2 стискається майже до нуля, показник відображає нескінченність.
PCA для X еквівалентне сингулярному розкладу (SVD) матриці X/√(n−1). Головні компоненти — це праві сингулярні вектори, а сингулярні значення задовольняють σₖ = √((n−1)λₖ). Обчислення SVD безпосередньо на даних чисельно стабільніше, ніж розклад коваріаційної матриці на власні значення, хоча обидва підходи дають ті самі осі.
Так. Клацніть будь-де на полотні, щоб додати окрему точку, натисніть «Перегенерувати», щоб намалювати нову випадкову хмару за поточними налаштуваннями повзунків, або скористайтеся «Очистити», щоб спорожнити полотно. PCA перераховується після кожної зміни, тож ви можете побудувати власний розподіл і одразу побачити його головні осі.
Для симетричної матриці 2×2 воно точне. Власні значення отримуються за формулою λ = tr/2 ± √(tr²/4 − det), яка є аналітичним розв'язком характеристичного багаточлена. Обидва власні значення обмежені знизу нулем, що відповідає тому факту, що реальна коваріаційна матриця є додатно напіввизначеною.
Увімкнення проєкцій малює лінію від кожної точки до її основи на осі PC1, ілюструючи зменшення розмірності. Залишивши лише координату PC1, ви відкидаєте інформацію PC2; квадрат довжини цих відкинутих відрізків дорівнює похибці відновлення, яку PCA мінімізує для будь-якої обраної кількості компонент.
PCA та SVD лежать в основі стиснення зображень, розпізнавання облич через «власні обличчя» (eigenfaces), аналізу популяційної структури в геноміці, факторних моделей у фінансах і зменшення шуму перед кластеризацією чи регресією. У квантовій механіці тісно пов'язане розкладання Шмідта діагоналізує матрицю густини двочастинкової підсистеми.