PCA насправді є лише обертанням. Серйозно, це все: це розумний спосіб перекрутити дані на нову основу. Ця основа має властивості, які роблять її корисною як етап попередньої обробки декількох процедур.
Основа - ортонормальна . Це неймовірно корисно, якщо ваші функції проявляють мультиколінічність (дві або більше функцій лінійно залежні): застосування PCA гарантовано дасть вам основу, коли це вже не є проблемою. Ця процедура відома як регресія основних компонентів
Базисні вектори мають сенсу щодо поширення даних: вони є власними векторами по ковариационной матриці . Це друге властивість породжує відому корисність PCA як техніку зменшення розмірності: після обертання даних проектування даних на підмножину базових векторів, пов'язаних зі значною частиною загальної дисперсії, дає нижче розмірне зображення, яке (часто) зберігається ( більшість) (цікавих) структурних властивостей даних.
Отже: це алгоритм навчання? Це свого роду філософське питання. Що робить щось алгоритмом навчання? Безумовно, PCA не є «контрольованим» алгоритмом навчання, оскільки ми можемо це робити з цільовою змінною або без неї, і ми зазвичай асоціюємо «непідконтрольні» методи кластеризації.
Так, PCA - це процедура попередньої обробки. Але перед тим, як ви повністю списати це як "не" щось вивчити, я хотів би, щоб ви врахували наступне: PCA можна обчислити, буквально взявши власні вектори коваріаційної матриці, але це не так, як це робиться на практиці. Числово еквівалентна і більш обчислювально ефективна процедура - це просто взяти SVD даних. Тому PCA - це лише специфічне застосування SVD, тому запитання, чи PCA є алгоритмом навчання, справді запитує, чи SVD є алгоритмом навчання.
Тепер, хоча вам може бути зручно списати PCA як не алгоритм навчання, ось чому вам має бути менш комфортно робити те саме з SVD: це напрочуд потужний метод моделювання тем та спільної фільтрації . Властивості SVD, які роблять його корисним для цих застосувань, точно такі ж властивості, які роблять його корисним для зменшення розмірності (тобто PCA).
SVD - це узагальнення ейгендекомпозиції, і це теж надзвичайно потужно, навіть як обмежена версія SVD. Ви можете виконати виявлення спільноти на графіку, переглянувши власні вектори матриці примикання або визначити стійкі стадії ймовірностей маркової моделі , переглянувши власні вектори перехідної матриці, що збігається також, по суті, як розраховується PageRank .
Під кришкою PCA виконує просту операцію лінійної алгебри. Але це саме та сама операція, яка лежить в основі багатьох застосувань, до яких більшість людей не ставить під сумнів застосування ярлика "машинне навчання". Цей клас алгоритмів називається Matrix Factorization і навіть поширюється на складні методи, такі як word2vec : дійсно, ви можете реально отримати результати, схожі на word2vec, буквально просто застосувавши PCA до матриці співзаключення слова . Знову узагальнюючи, ще одне слово для результатів PCA - це вбудовування . Word2vec - це, мабуть, найвідоміший приклад вбудовування, але побудова вкладок (як посередників) також є важливим компонентом архітектури кодера-декодера, що використовується в RNNта ГАН , які зараз є кровоточивим дослідженням ML.
Тож повернемось до вашого питання: чи PCA є "алгоритмом машинного навчання?" Ну, якщо це не так, ви повинні бути готові сказати те саме про спільну фільтрацію, моделювання тем, виявлення спільноти, центральну мережу та вбудовування моделей.
Тільки тому, що це проста лінійна алгебра, це не означає, що вона також не є магією.