Ознайомлення з аналізом основних компонентів, власних векторів та власних значень


975

У сьогоднішньому класі розпізнавання шаблонів мій професор розповів про PCA, власні вектори та власні значення.

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

Я дуже вірю в наступну цитату:

Ви щось не дуже розумієте, якщо не зможете пояснити це своїй бабусі. -- Альберт Ейнштейн

Ну, я не можу пояснити ці поняття мирянам чи бабусі.

  1. Чому PCA, власні вектори та власні значення? У чому полягала потреба в цих поняттях?
  2. Як би ви пояснили це мирянам?

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

7
Про це запитали на сайті «Математика» в липні, але не так добре, і на нього не було багато відповідей (не дивно, враховуючи різну увагу там). math.stackexchange.com/questions/1146/…
whuber

6
Аналогічно поясненню Zuur та ін в аналізі екологічних даних, коли вони говорять про проекцію вашої руки на проектор. Ви продовжуєте обертати руку так, щоб проекція на стіну виглядала досить схожою на те, що, на вашу думку, має виглядати рука.
Роман Луштрик

12
Це запитання привело мене до хорошої роботи, і хоча я вважаю, що це відмінна цитата, вона не від Ейнштейна. Це звичайний неправильний розподіл, і більш вірогідною оригінальною цитатою є, мабуть, ця книжка від Ернеста Резерфорда, який сказав: "Якщо ви не можете пояснити свою фізику буфетниці, це, мабуть, не дуже хороша фізика". Все одно дякую за те, що почав цю тему.
gavaletz

23
Аліса Калаприз, кінцева цитата Ейнштейна , Прінстон UP 2011, тут позначає цитату як одну з багатьох "Напевно, не Ейнштейна". Див. С.482.
Нік Кокс

Відповіді:


1292

Уявіть собі велику сімейну вечерю, де всі починають розпитувати вас про PCA. Спочатку ви поясните це своїй прабабусі; то до вас бабуся; то до матері; потім до вашої дружини; нарешті, до вашої дочки (яка є математиком). Кожен раз, коли наступна людина стає меншою мірою. Ось як може пройти розмова.

Прабабуся: я чув, що ти вивчаєш "Пі-See-Ay". Цікаво, що це ...

Ви: Ах, це просто метод узагальнення деяких даних. Подивіться, у нас на столі стоїть кілька пляшок вина. Ми можемо описати кожне вино за його кольором, за тим, наскільки воно міцне, за віком і так далі (див. Цю дуже приємну візуалізацію властивостей вина, взятих звідси ). Ми можемо скласти цілий список різних характеристик кожного вина в нашому підвалі. Але багато з них вимірюють пов'язані властивості і тому будуть зайвими. Якщо так, ми повинні мати можливість узагальнити кожне вино з меншими характеристиками! Це те, що робить PCA.

Бабуся: Це цікаво! Тож ця штука PCA перевіряє, які характеристики є зайвими та відкидає їх?

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

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

Мати: Хм, це, звичайно, добре звучить, але я не впевнена, що розумію. Що ти насправді маєш на увазі, кажучи, що ці нові характеристики PCA "узагальнюють" список вин?

Ви: Я думаю, я можу дати дві різні відповіді на це питання. Перша відповідь полягає в тому, що ви шукаєте деякі властивості (характеристики) вина, які сильно відрізняються між винами. Дійсно, уявіть, що ви придумали властивість, яка однакова для більшості вин. Це було б не дуже корисно, чи не так? Вина дуже різні, але ваша нова власність робить усі вони однаковими! Це, звичайно, буде поганим підсумком. Натомість PCA шукає властивості, які показують якомога більше варіацій у винах.

Друга відповідь полягає в тому, що ви шукаєте властивості, які б дозволили передбачити або "реконструювати" оригінальні характеристики вина. Знову ж, уявіть, що ви придумали властивість, яка не має відношення до вихідних характеристик; якщо ви використовуєте лише цю нову властивість, ви не можете реконструювати оригінальні! Це, знову ж таки, було б поганим підсумком. Таким чином, PCA шукає властивості, що дозволяють максимально реконструювати початкові характеристики.

Дивно, але виявляється, що ці дві цілі рівнозначні, і тому PCA може вбити двох птахів одним каменем.

Подружжя: Але любий, ці два "цілі" PCA звучать так різно! Чому вони були б рівнозначними?

Ви: Хммм. Можливо, я повинен зробити невеликий малюнок (бере серветку і починає писати) . Виберемо дві характеристики вина, можливо, темрява вина та вміст алкоголю - я не знаю, чи вони співвідносяться, але давайте уявимо, що вони є. Ось як може виглядати розсипчаста ділянка різних вин:

Зразкові дані PCA

Кожна крапка у цій «винній хмарі» показує одне конкретне вино. Ви бачите, що дві властивості ( і на цій фігурі) співвідносні. Нова властивість може бути побудована шляхом промальовування лінії через центр цієї винної хмари та проектування всіх точок на цю лінію. Ця нова властивість буде надана лінійною комбінацією , де кожен рядок відповідає деяким певним значенням і .xyw1x+w2yw1w2

Тепер подивіться тут дуже уважно - ось як виглядають ці проекції для різних ліній (червоні точки - це проекції синіх крапок):

PCA анімація: дисперсія та помилка відновлення

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

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

До речі, PCA означає "аналіз основних компонентів", і ця нова властивість називається "перший головний компонент". І замість того, щоб говорити "властивість" або "характеристика", ми зазвичай говоримо "особливість" або "змінна".

Дочка: Дуже добре, тато! Я думаю, я можу зрозуміти, чому обидві цілі дають однаковий результат: це по суті через теорему Піфагора, чи не так? У всякому разі, я чув, що PCA так чи інакше пов'язаний з власними векторами та власними значеннями; де вони на цій картині?

Ви: Блискуче спостереження. Математично розповсюдження червоних крапок вимірюється як середня квадратна відстань від центру винної хмари до кожної червоної точки; як відомо, це називається дисперсією . З іншого боку, загальна похибка реконструкції вимірюється як середня довжина квадрата відповідних червоних ліній. Але оскільки кут між червоними лініями та чорною лінією завжди дорівнює , сума цих двох величин дорівнює середній квадратичній відстані між центром винної хмари та кожною синьою крапкою; це саме теорема Піфагора. Звичайно, ця середня відстань не залежить від орієнтації чорної лінії, тому чим вище дисперсія, тим менша помилка (тому що їх сума є постійною). Цей хвилеподібний аргумент можна зробити точним (90дивіться тут ).

До речі, можна уявити, що чорна лінія - це суцільний стрижень і кожна червона лінія - це пружина. Енергія пружини пропорційна його довжині в квадраті (це відомо у фізиці як закон Гука), тому стрижень буде орієнтуватися таким чином, щоб мінімізувати суму цих квадратних відстаней. Я зробив імітацію, як це буде виглядати, при наявності в'язкого тертя:

PCA анімація: маятник

Щодо власних векторів та власних значень. Ви знаєте, що таке матриця коваріації ; у моєму прикладі це матриця яка задаєтьсяЦе означає, що дисперсія змінної дорівнює , дисперсія змінної - , а коваріація між ними - . Оскільки це квадратна симетрична матриця, її можна діагоналізувати, вибравши нову ортогональну систему координат, задану її власними векторами (до речі, це називається спектральною теоремою2×2

(1.070.630.630.64).
x1.07y0.640.63( 1,52 0 0 0,19 ) , 1,52); відповідні власні значення будуть розташовані на діагоналі. У цій новій системі координат матриця коваріації є діагональною і виглядає так: тобто кореляція між точками тепер дорівнює нулю. Стає зрозуміло, що дисперсія будь-якої проекції буде задана середньозваженим значенням власних значень (я тут лише малюю інтуїцію). Отже, максимально можлива дисперсія ( ) буде досягнута, якщо ми просто візьмемо проекцію на першу вісь координати. Звідси випливає, що напрямок першого головного компонента задається першим власним вектором коваріаційної матриці. ( Детальніше тут. )
(1.52000.19),
1.52

Це можна побачити і на обертовій фігурі: там сіра лінія ортогональна до чорної; разом вони утворюють обертовий координатний кадр. Спробуйте помітити, коли блакитні точки стають некорельованими в цьому обертовому кадрі. Відповідь, знову ж таки, - це відбувається саме тоді, коли чорна лінія вказує на пурпурові кліщі. Тепер я можу вам сказати, як я їх знайшов: вони позначають напрямок першого власного вектора матриці коваріації, який у даному випадку дорівнює .(0.81,0.58)


За популярним запитом я поділився кодом Matlab, щоб створити вищезазначені анімації .


79
+1 Приємна казка та ілюстрації. ...then to your mother; then to your wife; finally, to your daughter (who is a mathematician)...Я б продовжував: а після обіду - до себе. І тут ви раптом застрягли ...
ttnphns

68
Я абсолютно люблю ілюстрації, які ви робите для цих відповідей.
shadowtalker

57
Зазвичай я просто переглядаю Cross Valified, щоб прочитати речі, але ніколи не було підстав для створення облікового запису ... в основному тому, що питання тут не в моїй експертизі, і я не можу реально відповісти на жоден. Зазвичай я перебуваю лише в StackOverflow і вже близько року працюю в мережі StackExchange. Однак сьогодні я лише вирішив створити обліковий запис, перш за все, щоб підтвердити вашу посаду. Це, мабуть, найкраща експозиція PCA, яку я коли-небудь читав, і я прочитав багато. Дякую за цей чудовий пост - чудову розповідь, графіку, і її так легко читати! +1
rayryeng

14
Зауважте для себе: зараз у моїй відповіді 100 змін, у JDLong - 220 змін. якщо припустити постійний приріст, то у мене 100 змін на рік / рік, а у 40 - на рік. А точніше, 55 / рік, якщо обчислити з моменту проходження 100 оновлень [отримав золотий знак] у січні 2014 року. Це означає, що я догнаю через 2,5--3 роки, приблизно в кінці 2018 року. Подивимось :-)
амеба

3
Зауважте для себе: Я повинен оновити свою оцінку. Через місяць ця відповідь отримала 18 результатів проти 5 для JDLong. Це означає, що я можу наздогнати менше року. Цікаво, що 5 / місяць дуже близький моїй вище оцінці 55 / рік, але 18 / місяць більше ніж удвічі перевищує 100 / рік. Оскільки моя відповідь не змінилася, схоже, що потрапляння на друге місце прискорило подання заявок (можливо, через збільшення видимості).
амеба

376

Рукопис "Навчальний посібник з аналізу основних компонентів" Ліндсей І Сміт справді допоміг мені вправити PCA. Я думаю, що це все ще занадто складно для пояснення вашій бабусі, але це непогано. Ви повинні пропустити перші кілька біт обчислення власних імен тощо. Перейдіть до прикладу в главі 3 та подивіться на графіки.

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

редагувати: Ви насправді не питали про різницю між звичайними найменшими квадратами (OLS) та PCA, але, оскільки я викопав свої замітки, я написав про це запис у блозі . Дуже коротка версія OLS y ~ x мінімізує помилку, перпендикулярну до незалежної осі на зразок цієї (жовті лінії є прикладами двох помилок):

alt текст

Якби ви регресували x ~ y (на відміну від y ~ x у першому прикладі), це зведе до мінімуму помилку, як це:

alt текст

і PCA ефективно мінімізує помилку, ортогональну для самої моделі, наприклад:

alt текст

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

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


9
Гарний дзвінок на рукопис Ліндсей І Сміт - просто прочитайте його сьогодні; дуже корисний.
Stedy

7
Тож PCA еквівалентний Total Least Squares, якщо він оптимізує ортогональні відстані від точок до відповідної лінії?
Марцін

3
@Marcin - це правильно. Ви можете повторно фраза PCA , як знайти кращий ранг оцінку ( 1 м р ) вихідного р змінних ( х я Jm1mpp ), з цільовою функцією Е п I = 1 Σ р J = 1 ( х я J - х я J ) 2 . Вибір кількості ПК є рівнозначним виборі рангу прогнозів. x^iji=1,,nj=1,,pi=1nj=1p(xijx^ij)2
ймовірністьлогічний

3
Невелика математична помилка у Сміта: "всі власні вектори матриці перпендикулярні ... незалежно від того, скільки у вас розмірів" стосується лише симетричних матриць, ось одна з ними на 45 градусів . Сміт відзначає симетрію коваріаційних матриць раніше, але не їхнє значення - симетрія забезпечує nперпендикулярні власні вектори. Насправді, не всі реальні n x nматриці навіть мають справжні власні значення (наприклад, {{0,1}, {- 1,0}}), а ті, що роблять, не всі мають nнезалежні власні вектори (наприклад, {{1,1}, {0 , 1}})! Симетрія має значення!
Срібна рибка

8
Як математик, який навчає власних векторів, мені доводиться думати, читаючи цей рукопис Ліндсей Сміт. "... отриманий вектор є цілим числом, кратним вихідному ..." - який сенс згадувати ціле число ? Власний вектор матриці A - це будь-який вектор X, такий, що AX кратний X. Не ціле число, а кратне! Не ціле число також є нормальним! Боже, чому створюєш зайву плутанину там, де її немає?
Дмитро Зайцев

144

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

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


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

Цифри

Будь-яка хмара 3D-точок, яка є "когерентною" у сенсі, що не демонструє кластерів або вусиків або переживачів, буде схожа на одну з них. Будь-яка хмара 3D-точок взагалі - за умови, що не всі точки збігаються - може бути описана однією з цих фігур як початкова точка відправлення для визначення подальшої кластеризації або малювання.

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


2
Щоб додати до цього, коли у вас (майже) рівні піввісі (тобто еліпсоїд має (близький) круговий зріз), це вказує на те, що два фрагменти даних, що відповідають цим осям, мають (майже) залежність; можна говорити про основні осі для еліпса, але кола мають лише один радіус. :)
JM не є статистиком

6
Я був би тут обережнішим, Дж. М. По-перше, просто для уточнення, під «близькою залежністю» ви повинні мати на увазі «майже незалежний». Це справедливо для мультинормальної змінної, але у багатьох випадках PCA виконується з даними, які явно ненормальні. Дійсно, кластеризуючі аналізи, що слідують за деякими розрахунками PCA, можуть розглядатися як один із способів оцінки сильної форми ненормативності. Математично кола дійсно мають головну вісь, але вони просто не однозначно: ви можете вибрати будь-яку ортогональную пару радіусів як їхні головні осі.
whuber

1
Так, вибачте, я припускаю, що "головні осі кола невизначені" було б кращим способом його розміщення.
JM не є статистиком

2
Дуже приємна інтерпретація! Намагаючись зрозуміти це краще ... де в математиці PCA можна побачити, що "PCA відповідає еліпсоїду даним"?
Кочеде

4
@Kochede Еліпсоїд - контур квадратичної форми. Коваріаційна матриця - квадратична форма. PCA ідентифікує свої осі та їх довжини.
whuber

106

Гм, тут ідеться про абсолютно нематематичний прийом на PCA ...

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

1) Які якості є найбільш важливими для виявлення груп сидрів? наприклад, класифікація на основі солодкості полегшує класифікацію ваших сидерів у групи, що мають подібну дегустацію, ніж класифікація на основі плідності?

2) Чи можемо ми зменшити наш список змінних, поєднавши деякі з них? наприклад, чи є насправді змінна, яка є певним поєднанням "дріжджості та ясності та симпатичності", яка дає дійсно хорошу шкалу для класифікації сортів?

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


4
Що з власними векторами та власними значеннями?
Ηλίας

3
Гаразд: власне значення, пов'язане з кожним головним компонентом, говорить про те, скільки варіацій у наборі даних він пояснює (на моєму прикладі, наскільки чітко він розділяє ваші пляшки на групи). Зазвичай вони виражаються у відсотках від загальної зміни в наборі даних. Що стосується власних векторів, ну тут, як казали кігті, я слідкую за результатами аналізу, як машина;) У моїй голові вони пов'язані з тим, як ви повертаєте мобільний телефон Вінса до його "найкращої" орієнтації, але це може бути не правильний спосіб їх думати.
Фрея Гаррісон

17
Власні вектори - це лише лінійні комбінації вихідних змінних (у простому чи обертовому факторному просторі); вони описали, як змінні "сприяють" кожній осі фактора. В основному, розгляньте PCA як спосіб побудови нових осей, які вказують на напрями максимальної дисперсії (у вихідному просторі змінної), виражені власним значенням, і як внесок змінних зважують або лінійно перетворюють у цьому новому просторі.
chl

якою буде матриця коваріації цієї проблеми? що це говорить нам про змінні (солодкість, терпкість, гіркота, дріжджовість, плідність, чіткість, неясність тощо)?
JustCurious

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

96

Я відповів би "простим словом", кажучи, що PCA має на меті підходити прямі лінії до точок даних (усі знають, що таке пряма лінія). Ми називаємо ці прямі «основними складовими». Є стільки ж основних компонентів, скільки є змінних. Перший головний компонент - найкраща пряма лінія, яку ви можете підходити до даних. Другий головний компонент - найкраща пряма лінія, на яку можна підходити до помилок першого основного компонента. Третій головний компонент - найкраща пряма лінія, на яку можна підходити до помилок першого та другого основних компонентів тощо, тощо.

Якщо хтось запитує, що ви маєте на увазі під "найкращим" чи "помилками", то це говорить про те, що вони не є "мирянином", тому можете заглибитись у трохи більше технічних деталей, таких як перпендикулярні помилки, не знаю, де помилка x- або y- напрям, більш ніж 2 або 3 розміри і т. д. Далі, якщо ви не посилаєтесь на регресію OLS (яку, мабуть, "не" зрозуміє і "), пояснення простіше.

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


8
+1, це справді з точки зору "непростого", і я знаю, що ви могли б отримати це дуже суворо, якби хотіли!
gung

2
Я б сказав, найкраща відповідь поки що. І я багато використовую PCA.
a11msp

2
Нічого собі - це справді чудове і просте пояснення! Дякую!
Нік

52

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

Mnn

βββi=1Mxiμ20 x i = x i - μ M i = 1x i2μ0xi=xiμi=1Mxi2

Тепер вибір лінії. Ми можемо описати будь-яку пряму як сукупність точок, які задовольняють рівнянню , для деяких векторів . Зауважимо, що якщо ми перемістимо лінію деяким ортогональним вектором гаммою до , то всі проекції на лінію також будуть переміщені , отже, середнє значення проекцій буде переміщене , отже, дисперсія проекцій залишиться незмінним. Це означає, що ми можемо рухати лінію паралельно самій собі, а не змінювати дисперсію проекцій на цій прямій. Знову для зручності обмежимось лише лише лініями, що проходять через нульову точку (це означає лінії, описані ).v , w γ v γ γ x = α vx=αv+wv,wγvγγx=αv

Гаразд, тепер припустимо, що у нас є вектор який описує напрямок лінії, яка є можливим кандидатом для лінії, яку ми шукаємо. Нам потрібно обчислити дисперсію проекцій на пряму . Нам знадобляться точки проекції та їх значення. З лінійної алгебри ми знаємо, що в цьому простому випадку проекція на є . Давайте обмежимося лише одиничними векторами . Це означає, що ми можемо записати довжину проекції точки на просто як .vαvxiαvxi,v/v2vxivxi,v

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

Що стосується середнього значення проекцій, то зауважимо, що є частиною ортогональної основи нашого простору, і що якщо ми проектуємо наші точки даних на кожен вектор цієї бази, їх сума скасується (це так, тому що проектування на вектори з бази - це як записування точок даних у новій ортогональній основі). Тож сума всіх проекцій на вектор (назвемо суму ) і сума проекцій на інші вектори від базису (назвемо це ) дорівнює 0, тому що це середнє значення точок даних. Але є ортогональним для ! Це означає, що .vvSvSoSvSoSo=Sv=0

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

i=1M(xiv)2=i=1MvTxiTxiv=vT(i=1MxiTxi)v.

Ну добре, раптом вискочила матриця коваріації. Давайте позначимо його просто . Це означає , що ми тепер шукаємо одиничний вектор , який максимізує для деякого напів-позитивної визначеності матриці .XvvTXvX

Тепер візьмемо власні вектори та власні значення матриці та позначимо їх відповідно та , так що . Якщо значення не дублюються, власні вектори утворюють ортонормальну основу. Якщо вони є, ми вибираємо власні вектори таким чином, щоб вони складали ортонормальну основу.Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

Тепер давайте обчислимо для власного вектора . МаємоvTXvei

eiTXei=eiT(λiei)=λi(ei2)2=λi.

Досить добре, це дає нам для . Тепер візьмемо довільний вектор . Оскільки власні вектори утворюють ортонормальну основу, ми можемо записати , і у нас є . Позначимо .λ1e1vv=i=1neiv,eii=1nv,ei2=1βi=v,ei

Тепер порахуємо . Переписуємо як лінійну комбінацію , і отримуємо:vTXvvei

(i=1nβiei)TX(i=1nβiei)=(i=1nβiei)(i=1nλiβiei)=i=1nλi(βi)2(ei2)2.

Останнє рівняння походить від того, що власні вектори вибираються попарно ортогональними, тому їх крапкові добутки дорівнюють нулю. Тепер, оскільки всі власні вектори також мають одиничну довжину, ми можемо записати , де всі позитивні, і сума до .vTXv=i=1nλiβi2βi21

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

Тепер припустимо, що ми хочемо іншого вектора. Ми повинні обрати його з ортогонального простору до вже вибраного, це означає підпростір . За аналогічним висновком ми дійшли висновку, що найкращий вектор для проектування - . І так далі, і так далі ...lin(e2,e3,,en)e2

До речі, зараз має бути зрозуміло, чому збережена дисперсія може бути виражена через .i=1kλi/i=1nλi

Ми також повинні виправдати жадібний вибір векторів. Коли ми хочемо вибрати вектори для проектування, можливо, не найкраща ідея спочатку вибрати найкращий вектор, потім найкращий з того, що залишається, і так далі. Я хотів би стверджувати, що в цьому випадку це виправдано і не має ніякого значення. Позначимо вектор ми хочемо . Також припустимо, що вектори є попарно ортогональними. Як ми вже знаємо, загальна дисперсія проекцій на ці вектори може бути виражена деkkv1,,vk

j=1ki=1nλiβij2=i=1nλiγi
γi=j=1kβij2.

Тепер запишемо в якійсь ортонормічній основі, що включає . Позначимо решту основи як . Ми можемо бачити, що . Оскільки , маємо , а отже для всіх .eiv1,,vku1,,unkei=j=1kβijvj+j=1nkθjei,ujei2=1j=1kβij2+j=1nkθj2=1γi1i

Тепер ми маємо подібний випадок лише до одного вектора, тепер ми знаємо, що загальна дисперсія проекцій дорівнює з та . Це ще одне зважене середнє значення, і, звичайно, не більше ніж що відповідає проектуванню на власних векторів, що відповідають найбільшим власним значенням.i=1nλiγiγi1i=1nγi=ki=1kλik


2
+1 Дуже приємна відповідь! Ще не прочитав його повністю, але ваша відповідь - такий, який я шукав. Всі кроки пояснено =)
jjepsuomi

9
Покажіть мені мирянина, який знає основну лінійну алгебру, і я покажу вам магістратуру з математики.
ймовірністьлогічний

З лінійної алгебри ми знаємо, що в цьому простому випадку проекція на єxiαvxi,v/v2 (5-й абзац). Чи не повинен бути? Іншими словами, скалярна проекція? xi,v/v
Антоні Пареллада

1
Я думаю, що це, безумовно, найкраще пояснення PCA, який я коли-небудь бачив. Дякую.
Nimitz14

1
Це моє улюблене пояснення, яке також показує, чому власні вектори максимізують дисперсію.
Ромвелл

47

Добре, я спробую це. Кілька місяців тому я переглянув чималу кількість літератури, щоб знайти інтуїтивне пояснення, яке можу пояснити нестатисту. Я знайшов похідні, які використовують мультиплікатори Лагранжа, найбільш інтуїтивними.

Скажімо, у нас є дані високих розмірів - скажімо, 30 вимірювань, зроблених на комах. Клопи мають різні генотипи та трохи різні фізичні особливості в деяких із цих розмірів, але за допомогою таких даних про високі розміри важко сказати, які комахи належать до якої групи.

PCA - це техніка зменшення розмірності:

  1. Взяття лінійних комбінацій вихідних змінних.
  2. Кожна лінійна комбінація пояснює найбільшу дисперсію в даних, які вона може.
  3. Кожна лінійна комбінація некорельована з іншими

Або, математично:

  1. Для (лінійна комбінація для j-го компонента)Yj=ajx
  2. Для , (перші компоненти пояснюють більше варіації)k>jV(Yk)<V(Yj)
  3. akaj=0 (ортогональність)

Пошук лінійних комбінацій, що задовольняють цим обмеженням, призводить нас до власних значень. Чому?

Я рекомендую переглянути книгу Вступ до багатовимірного аналізу даних для повного виведення (стор. 50), але основна ідея - це послідовні проблеми оптимізації (максимізація дисперсії), обмежені таким чином, що a'a = 1 для коефіцієнтів a (для запобігання випадку коли дисперсія може бути нескінченною) і обмежена, щоб переконатися, що коефіцієнти є ортогональними.

Це призводить до оптимізації за допомогою множників Лагранжа, що в свою чергу розкриває, чому використовуються власні значення. Я занадто ледачий, щоб набрати це (вибачте!), Але цей PDF з цього моменту досить добре проходить доказ.

Я б ніколи не намагався пояснити це своїй бабусі, але якби мені довелося загалом говорити про методи зменшення розмірів, я б вказав на цей тривіальний приклад проекції (не PCA). Припустимо, у вас є мобільний телефон Calder, який дуже складний. Деякі точки в 3-денному просторі близькі один до одного, інші - ні. Якщо ми повісили цей мобільний на стелю і просвітили на ньому світло з одного кута, отримаємо проекцію на площину нижчого розміру (2-д стіну). Тепер, якщо цей мобільний в основному широкий в одному напрямку, але худий в іншому напрямку, ми можемо повернути його, щоб отримати проекції, які відрізняються корисністю. Інтуїтивно кажучи, худенька форма в одному вимірі, що проектується на стіну, є менш корисною - всі тіні перекриваються і не дають нам багато інформації. Однак якщо ми обертаємо його так, щоб світло світилося на широкій стороні, ми отримуємо кращу картину даних зменшених розмірів - точки більш розкладені. Це часто те, що ми хочемо. Я думаю, моя бабуся могла це зрозуміти :-)


6
Це дуже

2
Це трохи математика, але найкращий спосіб зрозуміти щось - це отримати.
Вінс

29
У вас винятково добре вихована бабуся :-).
whuber

7
мені подобається пояснення зі світлом, що сяє на 3-денній структурі
Ніл МакГуган

(+1) Усі чудові відповіді, але це також я би дав.
Дігіо

37

Намагаючись бути нетехнічним ... Уявіть, у вас є багатовимірні дані, багатовимірна хмара точок. Коли ви обчислюєте матрицю коваріації з тих, кого ви фактично (а) центруєте хмару, тобто ставите походження як багатовимірне середнє, осі системи координат зараз перетинаються в центрі хмари, (b) шифруєте інформацію про форму хмари і як він орієнтований у просторі за допомогою дисперсійно-коваріаційних записів. Отже, більшість важливих відомостей про форму даних у цілому зберігається в матриці коваріації.

Потім ви робите власне декомпозицію цієї матриці і отримуєте перелік власних значень та відповідну кількість власних векторів. Тепер перший основний компонент - це нова латентна змінна, яка може відображатися як вісь, що проходить через початок, і орієнтована в напрямку максимальної дисперсії (товщини) хмари. Дисперсія вздовж цієї осі, тобто дисперсія координат усіх точок на ній, єперше власне значення, а орієнтація осі в просторі, на яку посилаються вихідні осі (змінні), визначається 1-м власним вектором: його записами є косинуси між нею та тими початковими осями. Вищезазначені координати точок даних для 1-го компонента - це значення першої основної складової, або компоненти компонентів; вони обчислюються як добуток (в центрі) матриці даних та власного вектора.

«Після» 1-го пр. Виміряний компонент він, скажімо, "виймається" з хмари з усією відхиленою від нього дисперсією, а розмірність хмари падає на одиницю. Далі все повторюється з другим власним значенням і другим власним вектором - 2-м пр. компонент записується, а потім "видаляється". І т.д.

Отже, ще раз: власні вектори - це косинуси напрямків для основних компонентів, тоді як власні значення - величина (дисперсія) головних компонентів. Сума всіх власних значень дорівнює сумі дисперсій, що знаходяться на діагоналі дисперсії-коваріаційної матриці. Якщо ви переводите «magnitudinal» інформацію , що зберігається в власних над власним векторах , щоб додати його в «орієнтаційної» інформації , що зберігається в ньому ви отримаєте те , що називається основним компонентом навантаження ; ці навантаження - оскільки вони несуть обидва типи інформації - є коваріаціями між оригінальними змінними та основними компонентами.

Пізніше PS Я хочу особливо наголосити тут на термінологічній різниці між власними векторами та навантаженнями . Багато людей і деякі пакунки (включаючи деякі з них R) легковажно використовують два терміни взаємозамінно. Це погана практика, оскільки предмети та їх значення різні. Власні вектори - це косинуси напрямку, кут ортогонального "обертання" якого складає PCA. Навантаження - це власні вектори, що прищеплюються інформацією про мінливість або величину повернутих даних. Навантаження - це коефіцієнти асоціації між компонентами та змінними, і вони безпосередньо порівнянні з коефіцієнтами асоціації, обчисленими між змінними - коваріаціями, кореляціями чи іншими скалярними продуктами, на якій ви базуєте свій PCA. І власні вектори, і навантаження схожі за тим, що вони служать коефіцієнтами регресії при прогнозуванні змінних компонентами (а не навпаки!1). Власні вектори - це коефіцієнти для прогнозування змінних за балами сировинних компонентів. Навантаження - це коефіцієнти для прогнозування змінних за шкалою (нормалізованими) компонентами балів (недарма: завантаження осадили інформацію про мінливість, отже, використовувані компоненти повинні бути позбавлені її). Ще однією причиною не змішувати власні вектори та навантаження є те, що деякі інші методи зменшення розмірності, окрім PCA - такі як деякі форми факторного аналізу - обчислюють навантаження безпосередньо, минаючи власні вектори. Власні вектори є продуктом власного розкладання або розкладання єдиного значення; деякі форми факторного аналізу не використовують ці декомпозиції і набувають навантажень іншим способом. Нарешті, це навантаження, а не власні вектори, за допомогою яких ви інтерпретуєте компоненти чи фактори (якщо вам потрібно їх інтерпретувати). Завантаження - це внесок компонента в змінну: в PCA (або факторному аналізі) компонент / фактор завантажується на змінну, а не навпаки. У вичерпних результатах PCA слід повідомляти як про власні вектори, так і про навантаження, як показано, наприкладтут чи тут .

Дивіться також про навантаження проти власних векторів.


1 Оскільки матриця власних векторів у PCA є ортонормальною, а її зворотною є її транспозиція, ми можемо сказати, що ці самі власні вектори також є коефіцієнтами, що дозволяють передбачити компоненти за змінними. Але це не так для навантажень.


@amoeba, я не наполягаю, і ви можете використовувати будь-яку термінологію, до якої ви звикли. Я чітко пояснив, чому я вважаю, що терміни "навантаження" та "власні вектори" краще зберігати окремо. Я дотримуюся класичної традиції, наприклад, у Хармані. Аналіз сучасного фактора, якщо тільки я правильно пам’ятаю традицію.
ttnphns

(Проти.) У будь-якому випадку, ви самі знаєте, що термін "навантаження", хоч і справді досить сумнівний, безперервно не змішується з "власним вектором" в інших багатоваріантних аналізах, таких як, наприклад, дискримінантний аналіз. Ще раз, як я говорив, у завантаження PCA 1) включити інформацію про величину варіації; 2) Чи є коваріації / кореляції, і тому вони використовуються для тлумачення. Значення власного вектора - ні.
ttnphns

2
+1 Я читав ваші публікації щодо PCA та інших пов'язаних з цим питань, і багато чого дізнався.
Антоні Пареллада

29

Гаразд, абсолютно не математична відповідь:

Якщо у вас є маса змінних на купі предметів, і ви хочете зменшити її до меншої кількості змінних на тих самих предметах, втрачаючи при цьому якомога менше інформації, тоді PCA - це один із інструментів для цього.

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


Гей, Пітер! Рада бачити вас тут. Це дійсно гарна, проста, без математичної відповіді.
JD Long

3
+1 для згадки про ФА, яку, схоже, ніхто не обговорює, і пояснення деяких людей, схоже, поєднуються.
gung

Здається, немає різниці в цілях PCA і FA - обидва мають на меті обертатись, щоб ви могли бачити найважливіші фактори (приховані вектори, або eigendimensions, сингулярні вектори чи що завгодно). Але здається, що ФА - це не алгоритм, а сімейство споріднених методик (один до одного, SVD та PCA) з відповідно визначеними цілями (що означає різноманітні та взаємно непослідовні, тому різні варіанти "оптимізують" різні речі).
David MW Powers

Чи було б правильно сказати, що PCA - це один із багатьох можливих способів зробити факторний аналіз?
abalter

Термінологія в цій галузі, як відомо, непослідовна.
Пітер Флом

29

Найпростіше робити математику в 2-D.

Кожній матриці відповідає лінійне перетворення. Лінійні перетворення можна візуалізувати, взявши на площині пам'ятну фігуру і побачивши, як ця фігура спотворена лінійним перетворенням:

лінійні перетворення (фото: Flanigan & Kazdan )

  • Власні вектори - це ті самі вектори. Вони вказують в тому ж напрямку після перетворення, як раніше. власні вектори mona lisa(синій залишився колишнім, так що цей напрямок є власним вектором.)shear
  • Власні значення - це те, наскільки зростають чи скорочуються ті самі вектори, які залишаються. (синій залишився однакового розміру, тому власне значення буде )×1
  • PCA обертає осі, щоб краще "вирівнятися" з вашими даними. (Джерело: weigend.com ) PCA використовує власні вектори матриці коваріації, щоб визначити, як слід обертати дані. Оскільки обертання - це своєрідне лінійне перетворення , ваші нові розміри будуть сумами старих, як .Футбол PCA
    1=23%[1]+46%[2]+39%[3]

Причина, що людей, які працюють з реальними даними, цікавлять власні вектори та лінійні перетворення - це те, що в різних контекстах "лінійна" ( ) може висвітлити дійсно цікаві речі. Наприклад, подумайте, що означає ця властивість, якщо і отримують нові значення, або якщо і походять з якогось цікавого поля, або і з якогось цікавого простору. Наприклад :f(ax+by)=af(x)+bf(y)+abxy

обличчя

Сам PCA - це ще один приклад, найвідоміший статистикам. Деякі з інших відповідей, наприклад, Freya, дають реальні програми PCA.

Мені здається, дивно, що щось таке просте, як "поворот", може зробити так багато речей у різних областях, як, наприклад, вишикування продуктів для системи рекомендацій пояснює геополітичний конфлікт. Але, можливо, це не так дивно, якщо ви думаєте про фізику, коли вибираєте кращу основу (наприклад, зробити вісь напрямком руху, а не змінить непереборні рівняння на прості).similar how?x42.8%[x]57.2%[y]


2
Насправді це випадково, що обертання є лінійними і настільки зручним способом опису того, що відбувається для негеометричних даних. Збіг стосується квадратичної природи як декартового / евклідового простору, так і теореми центральної межі / гауссів. Віз. сигми складають квадратично подібні ортогональні розміри, саме тут наша ротаційна / ортогональна термінологія ND бере свій початок за аналогією з 2D та 3D простором.
David MW Powers

@DavidMWPowers Цікаво. Я думаю про обертання з точки зору лінійно-алгебри.
ізоморфізми

27

Після чудового допису Дж. Лонга в цій темі, я шукав простий приклад, і R-код необхідний для створення PCA, а потім повернутися до вихідних даних. Це дало мені деяку геометричну інтуїцію з перших рук, і я хочу поділитися тим, що я отримав. Набір даних та код можна безпосередньо скопіювати та вставити у форму G Gitub .

Я використовував набір даних , який я знайшов в Інтернеті на напівпровідниках тут , і я підрізав його тільки два виміри - «атомний номер» і «точку плавлення» - для полегшення прокладки.


Як застереження, ідея є чисто ілюстративною обчислювальним процесом: PCA використовується для зменшення більш ніж двох змінних до кількох похідних основних компонентів або для ідентифікації колінеарності також у випадку безлічі ознак. Таким чином, воно не знайде особливого застосування у випадку двох змінних, і не було б необхідності обчислювати власні вектори матриць кореляції, як вказував @amoeba.


Далі я обрізав спостереження з 44 до 15, щоб полегшити завдання відстеження окремих точок. Кінцевим результатом став каркас даних скелета ( dat1):

compounds   atomic.no      melting.point
AIN         10             498.0
AIP         14             625.0
AIAs        23             1011.5
...         ...            ... 

Стовпчик "сполуки" вказує на хімічну конституцію напівпровідника і відіграє роль назви рядків.

Це можна відтворити так (готово скопіювати та вставити на консоль R):

dat              <- read.csv(url("http://rinterested.github.io/datasets/semiconductors"))
colnames(dat)[2] <- "atomic.no"
dat1             <- subset(dat[1:15,1:3])
row.names(dat1)  <- dat1$compounds
dat1             <- dat1[,-1]

Потім дані були масштабовані:

X <- apply(dat1, 2, function(x) (x - mean(x)) / sd(x))
# This centers data points around the mean and standardizes by dividing by SD.
# It is the equivalent to `X <- scale(dat1, center = T, scale = T)`  

Наступні кроки лінійної алгебри:

C <- cov(X)                                           # Covariance matrix (centered data)

[at_nomelt_pat_no10.296melt_p0.2961]

Функція кореляції cor(dat1)дає той самий вихід на немасштабовані дані, як функція cov(X)для масштабованих даних.

lambda        <- eigen(C)$values                      # Eigenvalues
lambda_matrix <- diag(2)*eigen(C)$values              # Eigenvalues matrix

[λPC1λPC21.296422000.7035783]

e_vectors     <- eigen(C)$vectors                     # Eigenvectors

12[PC1PC21111]

Оскільки перший власний вектор спочатку повертається як ми вирішимо змінити його на щоб він відповідав вбудованим формулам через:[0.7,0.7][0.7,0.7]

e_vectors[,1] = - e_vectors[,1]; colnames(e_vectors) <- c("PC1","PC2")

Отримані власні значення були та . За менш мінімалістичних умов цей результат допоміг би вирішити, до яких власних векторів включити (найбільші власні значення). Наприклад, відносний внесок першого власного значення становить :, це означає, що на нього припадає змінності даних. Змінність у напрямку другого власного вектора становить . Зазвичай це показано на графіку обсипу із зображенням значення власних значень:1.29642170.703578364.8%eigen(C)$values[1]/sum(eigen(C)$values) * 10065%35.2%

введіть тут опис зображення

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

Оцінка матриця була визначена в якості матриці множення масштабованих даних ( X) з допомогою матриці власних векторів (або «вирощений») :

score_matrix <-  X %*% e_vectors    
# Identical to the often found operation: t(t(e_vectors) %*% t(X))

Концепція тягне за собою лінійну комбінацію кожного запису (рядок / предмет / спостереження / надпровідник в даному випадку) центрированних (і в цьому випадку масштабованих) даних, зважених рядками кожного власного вектора , так що в кожному з кінцевих стовпців матриця балів, ми знайдемо внесок з кожної змінної (стовпця) даних (цілого X), АЛЕ тільки відповідний власний вектор братиме участь у обчисленні (тобто перший власний вектор буде внести (основний компонент 1) та до , як у: ПК[0.7,0.7]T[ 0,7 , - 0,7 ] Т ПКPC1[0.7,0.7]TPC2

введіть тут опис зображення

Тому кожен власний вектор впливатиме на кожну змінну по-різному, і це буде відображено в "завантаженнях" PCA. У нашому випадку від'ємний знак у другій складовій другого власного вектора змінить знак значень точки плавлення у лінійних комбінаціях, що виробляють PC2, тоді як ефект першого власного вектора буде стабільно позитивним: [0.7,0.7]

введіть тут опис зображення

Власні вектори масштабуються до :1

> apply(e_vectors, 2, function(x) sum(x^2))
PC1 PC2 
  1   1 

тоді як ( навантаження ) - це власні вектори, масштабовані власними значеннями (незважаючи на заплутану термінологію у вбудованих функціях R, показаних нижче). Отже, навантаження можна обчислити так:

> e_vectors          %*% lambda_matrix
          [,1]      [,2]
[1,] 0.9167086  0.497505
[2,] 0.9167086 -0.497505

> prcomp(X)$rotation %*% diag(princomp(covmat = C)$sd^2)
                   [,1]      [,2]
atomic.no     0.9167086  0.497505
melting.point 0.9167086 -0.497505

Цікаво відзначити, що обертається хмара даних (графік оцінки) матиме дисперсію вздовж кожного компонента (ПК), рівну власним значенням:

> apply(score_matrix, 2, function(x) var(x))
       PC1        PC2 
53829.7896   110.8414 
> lambda
[1] 53829.7896   110.8414

Використовуючи вбудовані функції, результати можна повторити:

# For the SCORE MATRIX:
  prcomp(X)$x
# or...
  princomp(X)$scores # The signs of the PC 1 column will be reversed.

# and for EIGENVECTOR MATRIX:
  prcomp(X)$rotation
# or...
  princomp(X)$loadings

# and for EIGENVALUES:
  prcomp(X)$sdev^2
# or...
  princomp(covmat = C)$sd^2

Альтернативно, метод руйнування значення сингулярного значення ( ) може бути застосований до ручного обчислення PCA; насправді це метод, який використовується в . Етапи можна прописати як:UΣVTprcomp()

svd_scaled_dat <-svd(scale(dat1))
eigen_vectors <- svd_scaled_dat$v
eigen_values <- (svd_scaled_dat$d/sqrt(nrow(dat1) - 1))^2
scores<-scale(dat1) %*% eigen_vectors

Результат показаний нижче, по-перше, відстані від окремих точок до першого власного вектора, а на другому ділянці - ортогональні відстані до другого власного вектора:

введіть тут опис зображення

Якби замість цього ми побудували значення матриці оцінок (PC1 та PC2) - більше не "плавлення.точка" та "atomic.no", а дійсно зміна бази координат точок з власними векторами як основою, ці відстані були б збереглася, але природно стала б перпендикулярною до осі xy:

введіть тут опис зображення

Тепер фокусом було відновлення вихідних даних . Точки були перетворені простим множенням матриць власними векторами. Тепер дані повертаються назад шляхом множення на обернену матрицю власних векторів з результуючою помітною зміною місця розташування точок даних. Наприклад, помітьте зміну рожевої крапки "GaN" у лівому верхньому квадранті (чорний круг у лівій ділянці, внизу), повернувшись до початкового положення у лівому нижньому квадранті (чорний круг у правій ділянці, внизу).

Тепер у нас, нарешті, були відновлені початкові дані в цій "де-поверненій" матриці:

введіть тут опис зображення

Крім зміни координат обертання даних у PCA, результати слід інтерпретувати, і цей процес має на меті залучити a biplot, на якому точки даних побудовані щодо нових координат власного вектора, а вихідні змінні тепер накладаються як вектори. Цікаво відзначити еквівалентність у розташуванні точок між графіками у другому ряду графіків обертання зверху ("Оцінки з осі xy = Власні вектори") (ліворуч від поданих нижче графіків) та biplot(з право):

введіть тут опис зображення

Накладення оригінальних змінних у вигляді червоних стрілок пропонує шлях до інтерпретації PC1як вектора у напрямку (або з позитивною кореляцією) з обома atomic noта melting point; і PC2як компонент разом зі збільшеннями значень, atomic noале негативно корельованих із melting point, що відповідають значенням власних векторів:

PCA$rotation
                    PC1        PC2
atomic.no     0.7071068  0.7071068
melting.point 0.7071068 -0.7071068

Цей інтерактивний підручник Віктора Пауелла дає негайний відгук щодо змін власних векторів у міру зміни хмари даних.


1
+1 за зусилля і, зокрема, для анімації! Але слід пам’ятати, що PCA на кореляційній матриці двох змінних є дещо особливим випадком, оскільки всі кореляційні матриці двох змінних мають однакові власні вектори : одна з них завжди буде [0.7 0.7] (0.7 - це 1 / sqrt (2)). Це не стосується коваріаційних матриць або кореляційних матриць у більших розмірах.
амеба

14

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

Коли ми записуємо з шкіри голови людини, ми робимо це за допомогою 64 електродів. Отже, насправді у нас є 64 номери у списку, які представляють напругу, яку видає шкіра голови. Тепер, оскільки ми записуємо з мікросекундною точністю, якщо ми маємо 1-годинний експеримент (часто це 4 години), то це дає нам 1e6 * 60 ^ 2 == 3 600 000 000 часових точок, в яких була записана напруга на кожному електроді, так що тепер ми мають матрицю 3 600 000 000 х 64. Оскільки головне припущення PCA полягає в тому, що ваші змінні є корельованими, це чудова техніка зменшення цього смішного обсягу даних до такої кількості, яку можна простежити. Як уже було сказано багато разів, власні значення представляють величину дисперсії, пояснену змінними (стовпцями). У цьому випадку власне значення являє собою дисперсію напруги в певний момент часу, внесену певним електродом. Тож тепер ми можемо сказати: «О, добре електродxНа даний момент yми повинні зосередитися на подальшому аналізі, тому що саме там відбувається найбільше змін ". Сподіваюсь, це допомагає. Люблячи ці сюжетні регресії!


12

Я можу бути поганою людиною, щоб відповісти на це, тому що я бабую бабусю, яка пояснила мені цю концепцію, і не набагато більше, але ось:

Припустимо, у вас населення. Значна частина населення падає мертвими від серцевих нападів. Ви намагаєтеся з’ясувати, що викликає інфаркти.

У вас є дві дані: зріст і вага.

Тепер зрозуміло, що між вагою та інфарктом є деяка залежність, але кореляція насправді не є сильною. Є важкі люди, у яких багато інфарктів, але деякі - ні.

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

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

[Будь ласка, не соромтесь відредагувати це, якщо воно повністю відсутнє. Я дійсно не розумію поняття більш глибоко, ніж це].


1
Ласкаво просимо на сайт статистики @Joel! Якщо у вас є шанс, ви можете також долучитися до обговорення запропонованого нами проекту аналізу даних StackExchange : stats.stackexchange.com/questions/2512/… .
Шейн

9
Прекрасний приклад, але технічно PCA не може знайти пояснення маси тіла, оскільки він може знайти лише лінійні пояснення, тобто зважені суми вихідних змінних. Однак якщо ви візьмете журнали вхідних змінних, співвідношення стає різницею, і якщо це правильне пояснення, PCA зможе його знайти.
David MW Powers

10

Ось один для бабусі:

У нашому місті є вулиці, що йдуть на північ і південь, деякі - на схід і захід, і навіть деякі - на північний захід і південний схід, деякі - на північний південний захід. Одного разу хлопець вимірює весь рух на всіх вулицях, він виявляє, що найбільше трафіку йде по діагоналі, з північного заходу на південний схід, другий найбільший перпендикулярний цьому напрямку, що йде на північний схід на південний захід, а все інше досить мало. Тож він малює великий квадрат і ставить велику лінію зліва направо і каже, що це північний північний на південь, а потім прорисовує ще одну лінію вертикально вгору і вниз через середину. Він каже, що це другий найбільш переповнений напрямок руху (NE - SW). Решта невелика, тому її можна ігнорувати.

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


1
Ця аналогія, здається, руйнується під час експертизи. Що робити, якщо найбільший та другий за величиною напрямок руху не є ортогональними? Як ваша аналогія допомагає нам зрозуміти PCA в такому випадку?
whuber

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

2
Незалежно від того, "бабуся" розуміє посаду, вона повинна бути чітко зрозумілою та коректною. Схоже, ваша аналогія не відповідає жодній із цих цілей. Це може бути тому, що я не розумію аналогії: я не можу підключити його до того, що PCA є чи робить. Можливо, ви могли б уточнити, як працює аналогія, щоб інші читачі не стали такими загадкованими, як я.
whuber

Те, що вони не є ортогональними, означає, що вам потрібен ICA або FA, а не PCA. Якби бабуся спостерігала за «Зоряним шляхом» (так, це вона покоління), коли вони показують корабель-інвалід під кутом - PCA, як правило, відновить опорну площину, відповідну масштабу та виду (галактичний літак або осі корабля).
David MW Powers

-1. Я погоджуюся з @whuber, що ця аналогія не працює. Якими тут мають бути дані, якою матрицею коваріації є ці "власні вектори"? Я взагалі цього не розумію.
амеба

10

Ця відповідь дає інтуїтивну та не математичну інтерпретацію:

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

Іншими словами: Перший головний компонентний вектор розповість вам найбільше про хмару точок після проектування всіх точок на вектор. Це зрозуміле тлумачення.

Подивіться на цей еліпсоїд (перейдіть за посиланням для 3D-моделі) :

введіть тут опис зображення

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

Я здогадуюсь червоного по найдовшій осі. І це насправді розрахований перший основний компонент! Який наступний - я вибрав би синій уздовж наступної найдовшої осі.

Зазвичай потрібно проектувати набір точок з просторового простору на двовимірну площину або в тривимірний простір .

введіть тут опис зображення


http://www.joyofdata.de/blog/illustration-of-principal-component-analysis-pca/


10

Хоча є чимало прикладів для інтуїтивного розуміння PCA, цей факт майже може ускладнити розуміння на початку, принаймні, це було для мене.

"Що було одне в PCA, що всі ці різні приклади з різних дисциплін мають спільне ??"

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

Подумайте про проблему регуляризації, намагаючись отримати

||XBY||=0

Або англійською мовою розбийте свої дані на дві інші матриці, які якимось чином пролиють світло на дані? Якщо ці дві матриці працюють добре, помилка між ними та не повинна бути надто великою.YY

PCA дає корисний факторизатор з усіх причин, про які казали інші люди. Він розбиває матрицю ваших даних, , вниз на дві інші корисні матриці. В цьому випадку буде матрицею , в якій стовпці перші ПК ви зберегли, і є матриця дає вам рецепт для відновлення стовпців матриці , використовуючи стовпці . - перші рядки , і всі переходять. Власні значення на діагоналіYYXkBYXBkSVSв основному ваги, які найважливіші для ПК. Ось так математика прямо говорить вам, які ПК є найважливішими: кожен з них зважується за власними значеннями. Потім матриця повідомляє ПК, як їх поєднувати. VT

Я думаю, що люди дали багато інтуїтивних прикладів, тому я просто хотів цим поділитися. Побачивши це, допомогло мені зрозуміти, як це працює. Існує цілий світ цікавих алгоритмів і методів, які роблять подібні речі, як PCA. Розріджений кодування є підпілля машинного навчання , яка все про факторинг матриці в два інших корисні і цікаві, що відбиває закономірність в . AA


9

Ось математична відповідь: перший головний компонент - це найдовший вимір даних. Подивіться на це і запитайте: де дані найширші? Це перша складова. Наступний компонент - перпендикуляр. Отже, сигара даних має довжину і ширину. Має сенс все, що є таким собі довгастим.


6
На жаль, правильність цієї відповіді залежить від того, як трактується розпливчастий вираз «найдовше». Багато природних та відповідних тлумачень, таких як діаметр , було б неправильним.
whuber

PCA насправді добре працює з різними типами природного способу вимірювання розміру / розміру. Вам просто потрібно замінити коваріаційну матрицю на матрицю, щоб виміряти "розмірність" у будь-якому напрямку (матриця просто повинна бути позитивно визначеною або симетричною.) Це так само, як QuickSort працює для різних операторів замовлення, але ви отримаєте різні результати для різних операторів замовлення.
Джеймс ЛІ

9

Те, як я розумію основні компоненти, полягає в наступному: Дані з декількома змінними (висота, вага, вік, температура, довжина хвилі, відсоток виживання тощо) можуть бути представлені у трьох вимірах для відображення пов'язаності між собою.

Тепер, якщо ви хотіли якось осмислити "3D-дані", ви, можливо, захочете знати, які 2D-площини (перерізи) цих 3D-даних містять найбільше інформації для даного набору змінних. Ці двовимірні площини є основними компонентами, які містять частку кожної змінної.

Розгляньте основні компоненти як самі змінні, з композиційними характеристиками від оригінальних змінних (ця нова змінна може бути охарактеризована як вага частки, висота частини, вік частини тощо). Коли ви будуєте один головний компонент (X) проти іншого (Y), то ви робите це створення 2D-карти, яка може геометрично описувати кореляції між оригінальними змінними. Тепер корисна частина: оскільки кожен предмет (спостереження), який порівнюється, пов'язаний зі значеннями для кожної змінної, суб'єкти (спостереження) також знаходяться десь на цій карті XY. Їх розташування базується на відносному внеску кожної базової змінної (тобто на одне спостереження можуть сильно впливати вік і температура, тоді як на інше може вплинути більше і вага).


8

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


Non-Mathy:

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

Наприклад, припустимо, що ви видаєте анкету політичного опитування з 30 запитаннями, на кожне можна відповісти від 1 ( категорично не згоден ) через 5 (повністю згоден ). Ви отримуєте багато відповідей, і тепер у вас є 30-мірні дані, і ви не можете робити з них голови чи хвости. Тоді у відчаї ви думаєте запустити PCA і виявити 90% вашої дисперсії з одного напрямку, і цей напрямок не відповідає жодній вашій осі. Після подальшої перевірки отриманих даних ви робите висновок, що ця нова гібридна вісь відповідає ліво-правому політичному спектру, тобто демократичному / республіканському спектру, і продовжуєте розглядати більш тонкі аспекти даних.


Mathy:

Іноді допомагає зменшити масштаб і подивитися на математичну мотивацію, щоб пролити деяке світло на сенс.

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

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

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

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


2
Дякую за ваш внесок. Однак, мабуть, йдеться про зайво вузьку інтерпретацію PCA. (1) PCA було плідно застосовано до наборів даних, що не стосуються Гауса. (2) PCA не є формальною параметричною процедурою; можливо, краще вважати це дослідницьким духом. (3) Усі матриці коваріації будь-якого виду багатоваріантного розподілу чи даних діагоналізуються. Ні гауссовість (нормальність), ні невиродженість не є вимогами. (Симетрія матриці та наявність реальних компонентів гарантують діагоналізацію .)
whuber

Треба визнати, мені соромно, що я забув, але хороший пункт про діагоналізацію коваріаційних матриць взагалі. Я збираюся редагувати, щоб це відобразити. Також ви могли б детальніше розглянути питання (2)? Мені не знайома різниця між параметричними чи непараметричними процедурами.
Крістіан Буено

7

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


7

Чому так власні значення / власні вектори?

Роблячи PCA, потрібно обчислити деяку ортогональну основу, максимізувавши прогнозовану дисперсію на кожному базовому векторі.

Обчисливши попередні базові вектори, ви хочете, щоб наступним був:

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

Це обмежена проблема оптимізації, і множники Лагранжа (ось геометричну інтуїцію див. На сторінці вікіпедії) говорять про те, що градієнти об'єкта (прогнозована дисперсія) та обмеження (одинична норма) повинні бути "паралельними" в оптимії.

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


5
Однозначно не пояснення мирянину - ортогональні вектори? максимізація дисперсії проекції? обмежена проблема оптимізації? Множник Лагранжа? Це високо "жаргонізовані" терміни. Покажіть мирянина, який розуміє, що це означає, і я покажу вам математик / статистик
ймовірністьлогічний

6

В основному PCA знаходить нові змінні, які є лінійними комбінаціями вихідних змінних, таким чином, що в новому просторі дані мають менші розміри. Придумайте набір даних, що складається з точок у 3 вимірах на поверхні плоскої пластини, піднятої під кутом. У оригінальних осях x, y, z для представлення даних вам потрібні 3 виміри, але при правильному лінійному перетворенні вам потрібно лише 2.

В основному те, що сказав @Joel, але лише лінійні комбінації вхідних змінних.


6

Деякий час назад я спробував розібратися в цьому алгоритмі PCA і хотів зробити записку про власні вектори та власні значення. У цьому документі зазначалося, що мета ЕВЗ - перетворити модель великого розміру на модель дуже невеликого розміру.

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

Для мене це пояснення мало глибоке значення для того, що я намагався зробити! Сподіваюся, це теж допоможе вам!


-1. Можливо, я не цілком оцінив аналогію, але це здається мені досить оманливим. PCA дійсно (певним чином) дозволяє "конвертувати" "велику" модель у "малу" модель, але це робить за рахунок зменшення розмірності набору даних. Але як малий міст нижчої розмірності, ніж великий ?! Вони обидва 3D, чи не так.
амеба

@amoeba: цей уривок вийшов із прочитаного нами документа, це не зовсім мої слова. Я давно не вивчав цю тему і втратив слід.
Роршах

6

Уявіть, бабуся щойно зробила свої перші фотографії та фільми на цифровій камері, яку ви подарували їй на Різдво, на жаль, вона опускає праву руку, коли натискає на кнопку для фотографій, і вона дуже трясеться під час фільмів. Вона зауважує, що люди, дерева, огорожі, будівлі, двері, меблі тощо не є прямо вгору і вниз, не вертикальні і що підлога, земля, море, горизонт не є горизонтальним, і фільми також досить хиткі. Вона запитує, чи можете ви допомогти їй виправити їх, всі 3000 фото свят та близько 100 відео вдома та на пляжі (вона австралійська), відкриваючи подарунки, гуляючи країною. У неї є це програмне забезпечення для фотографій, яке дозволяє вам робити те, що вона каже. Ви кажете їй, що це займе кілька днів, і це все одно не працюватиме на відео, але ви знаєте методи, звані PCA та ICA, які можуть допомогти. Ви пояснюєте, що ваше дослідження насправді передбачає саме такий тип обертання даних у природні розміри, що ці методи знаходять найважливіші напрямки в даних, фотографію в цьому випадку та обертаються, тому найважливіший з них - горизонтальний, другий є вертикальним (і він може продовжуватися навіть для більшої кількості вимірів, які ми не можемо уявити дуже добре, хоча час - це також вимір у фільмах).

-

Технічна сторона. Насправді, ви могли б заробити доктор наук, роблячи це для неї, і є важливий документ Белла та Сєновського (1997) про незалежні компоненти зображень, що відповідають краям. Щоб пов'язати це з PCA: ICA використовує PCA або SVD як перший крок для зменшення розмірності та початкових наближень, але потім покращує їх, враховуючи не тільки помилку другого порядку (SSE), як PCA, але і помилки високого порядку - якщо це правда ICA, всі вищі порядки, хоча багато алгоритмів обмежуються 3-м чи 4-м. На компоненти PCA низького порядку, як правило, сильно впливають горизонталі та вертикалі. Для роботи з рухом камери для фільмів також можна використовувати PCA / ICA. Як для 2D фотографій, так і для 2½D фільмів вам потрібно пару уявних хитрощів, щоб досягти цього.

Ще одна програма, яку ви могли б пояснити бабусі, - це власні інтерфейси - власні вектори вищого порядку можуть наближати до 7 основних емоцій (середнє обличчя для кожного з них та «масштабована ротація» чи лінійна комбінація, щоб зробити це усередненим), але часто ми знаходимо компоненти, які пов'язані із статтю та расою, а деякі можуть виділити людей чи індивідуальні особливості (окуляри, борода тощо). Це те, що відбувається, якщо у вас є кілька фотографій будь-якої людини та багато емоцій / виразів, але ви отримуєте інший ухил, якщо у вас багато облич з нейтральними виразами. Використання ICA замість PCA насправді не дуже допомагає для базових емоцій, але Бартлетт та Сєновсікі (1997) показали, що вони знайшли корисні функції для розпізнавання обличчя.


1
Я ціную зусилля, щоб спілкуватися з прикладами та за аналогією. Використання зображень, однак, невдале через велику ймовірність, бабуся не зрозуміє, що ваше почуття "обертання" мало спільного з фактично обертанням осей зображення , і вона, ймовірно, не зрозуміє, що ви використовуєте "вимір "в абстрактному сенсі, в якому фотографії мають мільйонні розміри, а не лише два.
whuber

Так, вам потрібно представити це як хмара точок, як із зображеннями в інших відповідях. Попередня обробка деякою формою виявлення країв та / або встановлення порогів, ймовірно, буде частиною "хитрощів", ​​про які я згадував. Але для роботи над складною фотографією необхідні хитрощі доктора.
David MW Powers

@whuber Я фактично використовував PCA (добре SVD), щоб знайти ці обертання, роблячи стереокалібрування зображень! Це безумовно те саме відчуття обертання.
David MW Powers

2

Я думаю, що всі починають пояснювати PCA з неправильного кінця: з власних векторів. Моя відповідь починається з потрібного місця: система координат. Власні вектори та власна проблема загалом - це математичний інструмент, який використовується для вирішення реальної проблеми, що є неправильною системою координат. Я поясню.

Почнемо з рядка. Що таке лінія? Це одномірний об'єкт. Отже, для переміщення з однієї точки в іншу вам потрібен лише один вимір. На площині, хоча ви приєднаєте дві координати, будь-яку точку прямої. Це тому, що стосовно самої лінії систему координат вибирають довільно. Я зауважу, система координат не відображає внутрішню одновимірну природу лінії. Якби я завжди завжди ставив походження моєї декартової системи координат на лінію, і повернув її так, щоб її вісь x була на прямій, тоді мені більше не потрібна вісь y! Усі мої точки знаходяться на одній осі, тому що лінія - це одномірний об’єкт.

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


1

Пам'ятайте, що власний вектор - це вектор, перетворення якого паралельне тому ж вхідному вектору. Таким чином, власний вектор з високим власним значенням означає, що власний вектор має високий ступінь «паралельності» даним, це означає, що ви можете представляти дані лише з цим вектором і очікувати низьку помилку в новому поданні. Якщо ви виберете додаткові власні вектори з меншими власними значеннями, ви зможете представити більше деталей даних, оскільки ви будете представляти інші «паралельності» - які не такі видатні, як перший через менші власні значення.


0

PCA в основному - це проекція простору більш високого розміру в простір з меншими розмірами, зберігаючи якомога більше інформації.

Я написав повідомлення в блозі, де пояснюю PCA через проекцію 3D-чайника ...

введіть тут опис зображення

... на 2D-площину, зберігаючи якомога більше інформації:

введіть тут опис зображення

Детальну інформацію та повний R-код можна знайти у публікації:
http://blog.ephorie.de/intuition-for-principal-component-analysis-pca


1
Незважаючи на образи, в даний час це скоріше коментар, ніж відповідь. Чи можете ви розширити його, можливо, надавши підсумок інформації за посиланням? Повідомлення в мережі SE повинні мати змогу стояти самостійно.
gung

@gung: досить чесно - суть полягає в тому, що PCA в основному є проекцією простору більш високого розміру (в даному випадку 3D-чайника) на простір нижнього розміру (в даному випадку 2D-площину), зберігаючи стільки інформації, скільки можливо. Змінить це у відповіді.
фондж

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

1
Приклад чайника цікавий. Ви кажете, що PCA - це проекція на менший розмірний простір, зберігаючи якомога більше «інформації». Але .... що таке інформація? У випадку PCA це означає підтримувати загальну дисперсію якомога вище. Приклад чайного горщика більше нагадує, що інформація "найбільш збережена", використовуючи проекцію в певній площині, але це мало пояснює, як це робиться PCA і чи це також "найкращий" вибір "інформації". Наприклад, LDA також є проекцією, яка має намір зберегти інформацію, але не та сама, що PCA.
Martijn Weterings

Якби ваш чайник був би більш круглим / круглим (менш високим), ніж PCA, він вибрав би інше перехрестя, щоб зберегти більшість «інформації».
Martijn Weterings

-4

Можливо, пізно в цих аналізах є неявне припущення, що дані групи I відрізняються від групи II, і намагається знайти, який компонент, ймовірно, буде головним фактором, що сприяє різниці.

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


2
Цікаво, чи ти думаєш про MANOVA. Якби ви застосували два відокремлених PCA, ви б тільки показали, що структура кореляції була схожа.
gung

2
-1. Це абсолютно оманлива відповідь, з причини, викладеної @gung. Крім того, він навіть не намагається пояснити, що таке PCA.
амеба
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.