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


17

Я читав таке обґрунтування (із записів до курсу cs229) про те, чому ми ділимо вихідні дані на його стандартне відхилення:

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

незважаючи на те, що я розумію, про що йдеться в поясненні, мені незрозуміло, чому поділ на стандартне відхилення дозволить досягти такої мети. Це говорить так, що всі більше на тій же «шкалі». Однак не зовсім зрозуміло, чому ділення на стандартне відхилення досягає цього. Мовляв, що не так у поділі на дисперсію? Чому б не якась інша кількість? Як ... сума абсолютних значень? чи якась інша норма ... Чи є математичне обґрунтування вибору ЗПСШ?

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

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

Також, в контексті PCA, це процес стандартизації чи нормалізації?


Деякі інші думки, які у мене були, можуть "пояснити", чому ЗПСШ:

Оскільки PCA можна отримати з максимізації дисперсії, я здогадувався, що поділ на споріднену величину, таку як STD, може бути однією з причин, за якими ми розділилися на STD. Але тоді я подумав, що, якщо ми визначимо, можливо, "відхилення" від будь-якої іншої норми, , тоді ми розділимо за STD цієї норми (взявши pth корінь чи щось таке). Хоча це була лише здогадка, і я не на 100% з цього приводу, звідси і питання. Мені було цікаво, чи хтось знає щось, що стосується цього.1ni=1n(xiμ)p


Я бачив, що може бути пов'язане питання:

PCA на кореляцію чи коваріацію?

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

Те саме:

Чому нам потрібно нормалізувати дані перед аналізом

пов'язані:

"Нормалізація" змінних для SVD / PCA


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

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

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

2
Варто додати, що я думаю, що ваше запитання дуже добре (+1). Дійсно можна нормалізувати, розділивши щось інше; наприклад, стандартне відхилення є дуже ненадійною мірою і може бути введено в оману при наявності сильних переживачів. Таким чином, можна вибрати поділ на якусь надійну міру розкидання (див., Наприклад, "середнє абсолютне відхилення"). Немає "суворого математичного пояснення", чому використання ЗПСШ є найкращим способом нормалізації, і ви маєте рацію, що це "просто емпіричне спостереження", що це часто добре працює.
Амеба каже, що повернеться до Моніки

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

Відповіді:


11

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

ijithjthiiithith

ithXijthXj

Cov(Xi,Xj)=σXiσXjCor(Xi,Xj)

Zi=XiσXi

Var(Zi)=Var(XiσXi)=1σXi2Var(Xi)=1σXi2σXi2=1

Zjij

Cov(Zi,Zj)=σZiσZjCor(Zi,Zj)=Cor(Zi,Zj)

Cor(Zi,Zj)Cor(Xi,Xj)

Соv(Zi,Zi)=Vаr(Zi)=1тому вся діагональ заповнена такими, як ми і очікували. У цьому сенсі дані зараз "в одному масштабі" - їх граничні розподіли повинні виглядати дуже схоже, принаймні, якщо вони були приблизно нормально розподілені для початку, із середнім нулем та з дисперсією (та стандартним відхиленням). Більше не так, що змінність однієї змінної переповнює інші. Ви, звичайно, могли поділитися за різною мірою поширення. Дисперсія була б особливо поганим вибором через невідповідність розмірів (подумайте, що сталося б, якби ви змінили одиниці, в яких знаходилася одна з ваших змінних, наприклад, від метрів до кілометрів). Щось на зразок середнього абсолютного відхилення (або відповідного кратного MAD)якщо ви намагаєтесь використовувати його як якийсь надійний оцінювач стандартного відхилення), можливо, було б більш доречним. Але це все одно не перетворить цю діагональ на діагональ цих.

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


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

2
@ameoba Щодо точки "середньої глибини", той факт, що ми отримуємо відхилення в діагоналі однієї вниз по новій коваріаційній матриці, це по суті те, що ми маємо на увазі під отриманням перетворених даних, щоб вони мали змінні "в одній шкалі" з точки зору PCA. Щодо "дуже глибоких" питань, порушених цим питанням, я не впевнений, що існує велика різниця між запитанням "ну чому ми використовуємо відхилення як міру масштабу в PCA?" і запитати "чому PCA ставиться до (спів) варіацій?" - або, принаймні, що два питання були б тісно пов'язані.
Срібна рибка

1
@amoeba, чому б не розділити на MAD або за дисперсією замість SD - це, по суті, те саме питання, чому взагалі по-різному масштабувати: тобто чому б не зробити PCA на covariances? Я підтримую цю ідею в попередньому коментарі.
ttnphns

1
@ttnphns: Якщо різні змінні мають абсолютно незрівнянні шкали (температура, довжина, вага тощо), то прагнення якось нормалізувати змінні цілком зрозуміле. Це загальний аргумент для використання кореляційної матриці замість матриці коваріації. Але якщо хтось переживає за людину, що переживає людину, я не бачу нічого поганого в тому, щоб відняти медіану замість середини і розділити на MAD замість SVD ... Я цього ніколи не робив, але думаю, що це здається розумною справою.
амеба каже, що повернеться Моніка

1
@amoeba, лінійна PCA матриця повинна бути матрицею типу SSCP . Будь-яке лінійне перетворення вихідних змінних зберігає цей тип. Звичайно, ви також можете зробити будь-яке нелінійне перетворення (наприклад, ранжирування, щоб отримати матрицю Spearman rho), але потім складові показники та завантаження втрачають їх прямий (у сенсі мінімізації квадратів мінімізація) зв’язок із даними: вони тепер представляйте замість цього перетворені дані!
ttnphns

5

Чому ми поділяємо за стандартним відхиленням,
що не так у діленні на дисперсію?

z

Отже: стандартизація (середнє центрування + масштабування за стандартним відхиленням) має сенс, якщо ви вважаєте, що стандартний нормальний розподіл є розумним для ваших даних.

Чому б не якась інша кількість? Як ... сума абсолютних значень? чи якась інша норма ...

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

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

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

Дивіться також: Змінні часто коригуються (наприклад, стандартизовані) перед виготовленням моделі - коли це гарна ідея і коли це погана?


+1. Хороший приклад зі спектроскопічними даними. До речі, вітаємо з досягненням 10k повторень!
Амеба каже: Відновити Моніку

0

Це посилання чітко відповідає на ваше запитання: я думаю: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html

Я цитую невеликий фрагмент:

Стандартизація Z-балів чи масштабування Min-Max?

“Стандартизація чи мінімальне масштабування?” - Очевидної відповіді на це питання немає: це дійсно залежить від програми.

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

Однак це не означає, що масштабування Min-Max зовсім не корисно! Популярним додатком є ​​обробка зображень, де інтенсивність пікселів повинна бути нормалізована, щоб відповідати певному діапазону (тобто від 0 до 255 для кольорового діапазону RGB). Також типовий алгоритм нейронної мережі вимагає даних, що знаходяться в масштабі 0-1.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.