ГоловнаСтаттіМашинне навчання та нейронні мережі

PCA та SVD: Знаходження осей, на яких живе ваша дані

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

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

Симуляція обертання: як правильно використовувати дані

У симуляціях фізики, особливо коли мова йде про рух тіл, важливо розуміти концепцію незалежних осей. Зазвичай, дані з датчиків або спостереження за об'єктом містять кореляції – наприклад, висота та вага тіла можуть змінюватися одночасно. Це означає, що інформація не є повністю незалежною.

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

Обертання системи координат – це не зміна самих даних, а лише зміна способу їх представлення. Після обертання ви зможете більш ефективно аналізувати дані та визначати ключові напрямки руху.

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

Симуляція імпульсу

У симуляції імпульсу ви зможете дослідити, як рух об'єктів впливає на їхній імпульс. Ви можете змінювати швидкість і масу об'єктів, щоб побачити, як це впливає на їхній імпульс. Це чудовий спосіб зрозуміти фундаментальні закони фізики.

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

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

C = (1 / (n - 1)) * X-transpose * X       (X: centered n x d data matrix)
C v_i = lambda_i v_i                      (eigen-decomposition)
variance explained by component i = lambda_i / sum(lambda_j)

Чому SVD краще, ніж безпосереднє власне розкладання коваріатної матриці

Розкладання сингулярних значень (SVD) факторизує центровану матрицю даних безпосередньо як X = U Σ Vᵀ. Сторонні рядки V є точно власними векторами коваріантної матриці, а сингулярні значення пов’язані з власні значеннями за формулою lambda_i = sigma_i^2 / (n-1). Обчислення SVD для X безпосередньо є більш стабільним з точки зору обчислень, ніж спочатку формування XᵀX і потім власне розкладання цієї матриці, оскільки піднесення даних до квадрату (як при формуванні коваріантної матриці) також підносить її рангову задачу та посилює помилки округлення з плаваючою точкою. Це практична причина того, що реалізації на основі NumPy та scikit-learn виконують PCA за допомогою SVD замість явного власного розкладання коваріантної матриці.

X = U Sigma V-transpose
principal components = columns of V
scores (projected data) = X V = U Sigma

Реконструкція розмірності та помилка реконструкції

Збереження лише верхніх k компонентів проектує d-вимірні дані в k вимірів, зберігаючи при цьому максимальну досяжну дисперсію за допомогою будь-якого k-вимірного лінійного проектування — гарантію, відому як теорема Eckart-Young. Вона стверджує, що обрізаний розклад сингулярностей (SVD) є найкращим можливим низькоранговим наближенням у сенсі найменших квадратів. Помилка реконструкції від скидання залишкових компонентів дорівнює сумі відкинутих власне чисел, що надає прямий та обґрунтований спосіб вибору k: зберігайте достатньо компонентів, щоб їх сумарна дисперсія досягла цільового значення, часто 95%.

k = 0; cumulative = 0
while cumulative / total_variance < 0.95:
  k += 1
  cumulative += lambda[k]

Принципи дії симулятора квантового тунелювання

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

Frequently asked questions

Чи PCA це те саме, що SVD?

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

Чому SVD переважніше, ніж власне розкладання коваріаційної матриці?

Формування коваріаційної матриці потребує обчислення транспонованої X помноженої на X, що квадратує числове співвідношення даних і посилює помилки округлення з плаваючою комою. SVD безпосередньо розкладає центровану матрицю початкових даних, не формуючи цього обчисленого добутку, тому залишається числово стабільною навіть на погано узалеснених або багатовимірних наборах даних. Саме тому бібліотеки виробництва, такі як NumPy та scikit-learn, використовують SVD під капотом.

Чи добре працює PCA з усіма типами даних?

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

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

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

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

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

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