Осмысление анализа главных компонент, собственных векторов и собственных значений


976

На сегодняшнем занятии по распознаванию образов мой профессор говорил о PCA, собственных векторах и собственных значениях.

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

Я твердо верю в следующую цитату:

Вы действительно не понимаете что-то, если не можете объяснить это своей бабушке. -- Альберт Эйнштейн

Ну, я не могу объяснить эти понятия непрофессионалу или бабушке.

  1. Почему PCA, собственные векторы и собственные значения? В чем была необходимость этих концепций?
  2. Как бы вы объяснили это неспециалисту?

95
Хороший вопрос. Я также согласен с цитатой. Я полагаю, что есть много людей в статистике и математике, которые очень умны и могут очень глубоко погрузиться в свою работу, но не понимают, над чем они работают. Или они делают, но не в состоянии объяснить это другим. Я изо всех сил стараюсь дать ответы здесь на простом английском языке и задавать вопросы, требующие плана ответов на английский.
Нил Макгиган

7
Об этом спрашивали на сайте Математики в июле, но не так хорошо, и он не получил много ответов (что неудивительно, учитывая разную направленность). math.stackexchange.com/questions/1146/…
whuber

6
Аналогично объяснению Зуура и др. В «Анализе экологических данных», в котором говорится о проецировании вашей руки на оверхед-проектор. Вы продолжаете вращать руку так, чтобы проекция на стену выглядела примерно так, как вы думаете, как должна выглядеть рука.
Роман Луштрик

12
Этот вопрос привел меня к хорошей статье, и хотя я думаю, что это отличная цитата, она не принадлежит Эйнштейну. Это распространенное неправильное указание, и более вероятная оригинальная цитата, вероятно, принадлежит Эрнесту Резерфорду, который сказал: «Если вы не можете объяснить свою физику барменшу, это, вероятно, не очень хорошая физика». Все равно спасибо за запуск этой темы.
Гавалец

23
Алиса Калаприс, высшая цитата Эйнштейна , Принстон UP 2011 помечает цитату здесь как одну из многих "Вероятно, не от Эйнштейна". Смотри с.482.
Ник Кокс

Ответы:


1293

Представьте себе большой семейный ужин, где все начинают спрашивать вас о PCA. Сначала вы объясните это своей прабабушке; тогда тебе бабушка; затем к твоей матери; затем вашему супругу; наконец, вашей дочери (которая математик). Каждый раз следующий человек становится не таким мирянином. Вот как может идти разговор.

Прабабушка: Я слышал, вы изучаете "Пи-Си-Ай". Интересно, что это ...

Вы: Ах, это просто метод обобщения некоторых данных. Смотри, у нас на столе стоят бутылки с вином. Мы можем описать каждое вино по его цвету, по его силе, по возрасту и т. Д. (См. Эту прекрасную визуализацию свойств вина, взятую отсюда ). Мы можем составить целый список различных характеристик каждого вина в нашем погребе. Но многие из них будут измерять связанные свойства и поэтому будут излишними. Если это так, мы должны суммировать каждое вино с меньшим количеством характеристик! Это то, что делает PCA.

Бабушка: это интересно! Итак, эта вещь PCA проверяет, какие характеристики являются избыточными и отбрасывает их?

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

Фактически, PCA находит наилучшие возможные характеристики, которые обобщают список вин, а также только возможные (среди всех возможных линейных комбинаций). Вот почему это так полезно.

Мать: Хммм, это конечно звучит хорошо, но я не уверена, что понимаю. Что вы на самом деле имеете в виду, когда говорите, что эти новые характеристики PCA «суммируют» список вин?

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

Второй ответ заключается в том, что вы ищете свойства, которые позволили бы вам прогнозировать или «реконструировать» первоначальные характеристики вина. Опять же, представьте, что вы придумали свойство, которое не имеет отношения к исходным характеристикам; Если вы используете только это новое свойство, вы не сможете восстановить исходные! Это, опять же, было бы плохое резюме. Поэтому PCA ищет свойства, которые позволяют максимально точно восстановить исходные характеристики.

Удивительно, но оказывается, что эти две цели эквивалентны, и поэтому PCA может убить двух зайцев одним выстрелом.

Супруга: Но, дорогая, эти две «цели» PCA звучат так по-разному! Почему они были бы эквивалентны?

Вы: Хммм. Возможно, мне следует сделать небольшой рисунок (берет салфетку и начинает писать) . Давайте выберем две характеристики вина, возможно, темнота вина и содержание алкоголя - я не знаю, взаимосвязаны ли они, но давайте представим, что они есть. Вот как может выглядеть разбросный график различных вин:

PCA примерные данные

Каждая точка в этом "облаке вина" показывает одно конкретное вино. Вы видите, что два свойства ( x и y на этом рисунке) взаимосвязаны. Новое свойство можно построить, нарисовав линию через центр этого винного облака и спроецировав все точки на эту линию. Это новое свойство будет задано линейной комбинацией w1x+w2y , где каждая строка соответствует некоторым конкретным значениям w1 и w2 .

Теперь посмотрите очень внимательно - вот как эти проекции выглядят для разных линий (красные точки - это проекции синих точек):

PCA анимация: дисперсия и ошибка реконструкции

Как я уже говорил, PCA найдет «лучшую» линию в соответствии с двумя различными критериями того, что является «лучшим». Во-первых, изменение значений вдоль этой линии должно быть максимальным. Обратите внимание на то, как изменяется «разброс» (мы называем это «дисперсией») красных точек при вращении линии; Вы можете увидеть, когда он достигает максимума? Во-вторых, если мы реконструируем исходные две характеристики (положение синей точки) из новой (положение красной точки), ошибка восстановления будет определяться длиной соединительной красной линии. Наблюдайте, как длина этих красных линий изменяется, когда линия вращается; Вы можете увидеть, когда общая длина достигает минимума?

Если вы посмотрите на эту анимацию в течение некоторого времени, вы заметите, что «максимальная дисперсия» и «минимальная ошибка» достигаются одновременно, а именно, когда линия указывает на пурпурные тики, отмеченные мной по обе стороны облака вина. , Эта линия соответствует новому винному свойству, которое будет построено PCA.

Кстати, PCA означает «анализ главных компонентов», и это новое свойство называется «первый главный компонент». И вместо того, чтобы говорить «свойство» или «характеристика», мы обычно говорим «особенность» или «переменная».

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

Вы: Гениальное наблюдение. Математически распространение красных точек измеряется как среднее квадратное расстояние от центра облака вина до каждой красной точки; как вы знаете, это называется дисперсией . С другой стороны, общая ошибка восстановления измеряется как средняя длина квадрата соответствующих красных линий. Но так как угол между красной линией и черной линией всегда составляет 90сумма этих двух величин равна среднему квадратному расстоянию между центром облака вина и каждой синей точкой; это как раз теорема Пифагора. Конечно, это среднее расстояние не зависит от ориентации черной линии, поэтому чем выше дисперсия, тем меньше погрешность (поскольку их сумма постоянна). Этот аргумент может быть точным ( см. Здесь ).

Кстати, вы можете себе представить, что черная линия - это сплошной стержень, а каждая красная линия - это пружина. Энергия пружины пропорциональна ее длине в квадрате (это известно в физике как закон Гука), поэтому стержень будет ориентироваться так, чтобы минимизировать сумму этих квадратов расстояний. Я сделал симуляцию того, как это будет выглядеть, при наличии некоторого вязкого трения:

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

Относительно собственных векторов и собственных значений. Вы знаете, что такое ковариационная матрица ; в моем примере это матрица 2×2 которая задается как

(1.070.630.630.64).
Это означает, что дисперсия переменной x равна 1.07 , дисперсия переменной y равна 0.64 , а ковариация между ними равна 0.63 . Поскольку это квадратная симметричная матрица, ее можно диагонализировать, выбрав новую ортогональную систему координат, заданную ее собственными векторами (кстати, это называется спектральной теоремой); соответствующие собственные значения будут расположены на диагонали. В этой новой системе координат ковариационная матрица диагональна и выглядит следующим образом:
(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
Я очень люблю иллюстрации, которые вы делаете для этих ответов.
теневик

57
Обычно я просто просматриваю Cross Validated, чтобы прочесть что-то, но у меня никогда не было причин создавать учетную запись ... в основном потому, что вопросы такого рода находятся за пределами моей компетенции, и я не могу ответить на них. Обычно я работаю только в StackOverflow и уже около года в сети StackExchange. Тем не менее, я решил создать аккаунт только сегодня, чтобы проголосовать за ваш пост. Вероятно, это лучшая экспозиция PCA, которую я когда-либо читал, и я читал много. Спасибо за этот замечательный пост - отличное повествование, графика, и это так легко читать! +1
rayryeng

14
Примечание для себя: мой ответ в настоящее время имеет 100 голосов, у JDLong - 220 голосов; если мы предполагаем постоянный рост, то у меня 100 голосов в год, а у него 40 голосов в год. Или, скорее, 55 / год, если вычислить, так как в январе 2014 года он прошел 100 голосов [получил золотой значок]. Это означает, что я смогу наверстать упущенное через 2,5–3 года, примерно в конце 2018 года. Посмотрим :-)
amoeba

3
Примечание для себя продолжение: я должен обновить свою оценку. Месяц спустя этот ответ получил 18 голосов против 5 за JDLong. Это указывает на то, что я могу догнать менее чем через год. Интересно, что 5 / месяц очень близок к моей оценке выше 55 / год, но 18 / месяц более чем в два раза выше 100 / год. Поскольку мой ответ не изменился, кажется, что переход на второе место ускорил голосование (вероятно, из-за повышенной видимости).
амеба

376

Рукопись Линдси и Смита «Учебник по анализу основных компонентов» действительно помогла мне справиться с PCA. Я думаю, что это все еще слишком сложно объяснить бабушке, но это не плохо. Вы должны пропустить первые несколько бит при расчете собственных чисел и т. Д. Перейдите к примеру в главе 3 и посмотрите на графики.

У меня есть несколько примеров, где я работал с некоторыми игрушечными примерами, чтобы понять линейную регрессию PCA и OLS. Я постараюсь выкопать их и опубликовать.

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

альтернативный текст

Если бы вы регрессировали x ~ y (в отличие от y ~ x в первом примере), это минимизировало бы ошибку, подобную этой:

альтернативный текст

и PCA эффективно минимизирует ошибку, ортогональную самой модели, например:

альтернативный текст

Что еще более важно, как уже говорили другие, в ситуации, когда у вас есть ВЕСЬ ПУНКТ независимых переменных, PCA помогает вам определить, какие линейные комбинации этих переменных имеют наибольшее значение. Приведенные выше примеры просто помогают визуально представить, как выглядит первый основной компонент в действительно простом случае.

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


9
Хороший вызов рукописи Линдси и Смита - просто прочитайте ее сегодня; очень полезно.
Стеди

7
Так эквивалентен ли PCA полям наименьших квадратов, если он оптимизирует ортогональные расстояния от точек до линии соответствия?
Марчин

3
@ Марчин - это правильно. Вы можете повторно фраза 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

фигуры

Любое трехмерное облако точек, которое является «когерентным» в смысле отсутствия кластеров, усиков или выбросов, будет выглядеть как одно из них. Любое трехмерное облако точек - при условии, что не все точки совпадают - может быть описано на одном из этих рисунков в качестве начальной отправной точки для определения дальнейшей кластеризации или структуры.

Интуиция, которую вы развиваете из созерцания таких конфигураций, может применяться к более высоким измерениям, даже если эти измерения трудно или невозможно визуализировать.


2
В дополнение к этому, когда у вас есть (почти) равные полуоси (то есть эллипсоид имеет (почти) круговой срез), это указывает на то, что две части данных, соответствующие этим осям, имеют (почти) зависимость; можно говорить о главных осях эллипса, но у кругов только один радиус. :)
JM не является статистиком

6
Я был бы более осторожен здесь, JM First, просто чтобы уточнить, что под «почти зависимостью» вы должны подразумевать «почти независимость». Это было бы верно для мультинормального изменения, но во многих случаях PCA выполняется с данными, которые являются явно ненормальными. Действительно, кластерный анализ, который следует за некоторыми вычислениями PCA, может рассматриваться как один из способов оценки сильной формы ненормальности. Математически круги действительно имеют главную ось, но они просто не однозначно: вы можете выбрать любую ортогональную пару радиусов как их главные оси.
whuber

1
Да, извините, я полагаю, что "главные оси круга неопределенны", был бы лучшим способом выразить это.
JM не является статистиком

2
Очень хорошая интерпретация! Пытаясь понять это лучше ... где в математике PCA можно увидеть, что «PCA соответствует эллипсоиду данных»?
Кочеде

4
@ Кочеде Эллипсоид - это контур квадратичной формы. Ковариационная матрица является квадратичной формой. PCA определяет его оси и их длины.
whuber

106

Хм, здесь идет совершенно нематематический взгляд на PCA ...

Представьте, что вы только что открыли магазин сидра. У вас есть 50 разновидностей сидра, и вы хотите решить, как разместить их на полках, чтобы сидры с одинаковым вкусом ставились на одну полку. В сидре много разных вкусов и текстур - сладость, терпкость, горечь, дрожжевое состояние, фруктивность, прозрачность, шипучесть и т. Д. Итак, что нужно сделать, чтобы разложить бутылки по категориям, это ответить на два вопроса:

1) Какие качества наиболее важны для выявления групп сидра? Например, помогает ли классификация на основе сладости объединить ваши сидры в группы с одинаковым вкусом, чем классификация на основе фруктов?

2) Можем ли мы сократить наш список переменных, комбинируя некоторые из них? Например, существует ли на самом деле переменная, представляющая собой некоторую комбинацию «дрожжи, ясности и шипучести» и которая представляет собой действительно хорошую шкалу для классификации сортов?

По сути, это то, что делает PCA. Основными компонентами являются переменные, которые полезно объясняют вариации в наборе данных - в этом случае, которые полезны для дифференциации между группами. Каждый основной компонент является одной из ваших исходных объясняющих переменных или комбинацией некоторых из ваших исходных объясняющих переменных.


4
Как насчет собственных векторов и собственных значений?
ςλίας

3
Хорошо, собственное значение, связанное с каждым основным компонентом, говорит вам, насколько сильно он варьирует в наборе данных (в моем примере, насколько четко он разделяет ваши бутылки на группы). Они обычно выражаются в процентах от общего отклонения в наборе данных. Что касается собственных векторов, ну, вот как сказали когти, я следую за результатами анализа как машина;) В моей голове они связаны с тем, как вы поворачиваете мобильный телефон Винса в его «лучшую» ориентацию, но это может быть и не правильный способ думать о них.
Фрейя Харрисон

17
Собственные векторы - это просто линейные комбинации исходных переменных (в простом или повернутом фактор-пространстве); они описали, как переменные «способствуют» каждой оси фактора. По сути, думайте о PCA как о способе построения новых осей, которые указывают на направления максимальной дисперсии (в исходном пространстве переменных), выраженные собственным значением, и как вклады переменных взвешиваются или линейно преобразуются в этом новом пространстве.
ЧЛ

какой будет ковариационная матрица этой проблемы? что он говорит нам о переменных (сладость, терпкость, горечь, дрожь, фруктовость, ясность, пьянство и т. д. и т. д.)?
JustCurious

1
Я не знаю, что это о статистиках и алкогольных напитках, но Whiskey классификация делает именно это для шотландского виски ...
nekomatic

96

Я бы ответил «в терминах непрофессионала», сказав, что PCA стремится соответствовать прямым линиям к точкам данных (все знают, что такое прямая линия). Мы называем эти прямые «основными компонентами». Основных компонентов столько же, сколько и переменных. Первый основной компонент - это лучшая прямая линия, которую вы можете вписать в данные. Второй основной компонент - это лучшая прямая линия, которую вы можете приспособить к ошибкам первого основного компонента. Третий основной компонент - это лучшая прямая линия, которую вы можете приспособить к ошибкам первого и второго основных компонентов и т. Д. И т. Д.

Если кто-то спрашивает, что вы подразумеваете под «лучшими» или «ошибками», то это говорит о том, что они не являются «непрофессионалами», поэтому могут углубиться в некоторые технические детали, такие как перпендикулярные ошибки, не знаю, где находится ошибка x- или y-направление, более 2-х или 3-х измерений и т. д. Кроме того, если вы избегаете ссылаться на регрессию OLS (которую, вероятно, «непрофессионал» тоже не поймет), объяснение проще.

Собственные векторы и собственные значения не являются необходимыми понятиями как таковыми, скорее они оказались математическими понятиями, которые уже существовали. Когда вы решаете математическую задачу PCA, она оказывается эквивалентной нахождению собственных значений и собственных векторов ковариационной матрицы.


8
+1, это действительно "с точки зрения непрофессионала", и я знаю, что вы могли бы получить это очень строго, если бы захотели!
Gung

2
Лучший ответ на данный момент, я бы сказал. И я часто использую PCA.
a11msp

2
Ух ты - это действительно отличное и простое объяснение! Спасибо!
Ник

52

Я могу дать вам собственное объяснение / доказательство PCA, которое, на мой взгляд, действительно простое и элегантное и не требует ничего, кроме базовых знаний по линейной алгебре. Это вышло довольно долго, потому что я хотел писать на простом доступном языке.

Предположим, у нас есть выборок данных из n- мерного пространства. Теперь мы хотим спроецировать эти данные на несколько строк в n- мерном пространстве таким образом, чтобы сохранить как можно большую дисперсию (это означает, что дисперсия проецируемых данных должна быть настолько большой по сравнению с дисперсией исходных данных, как возможно).Mnn

Теперь давайте заметим, что если мы переместим (переместим) все точки на некоторый вектор , дисперсия останется прежней, так как перемещение всех точек на β также изменит их среднее арифметическое на β , и дисперсия будет линейно пропорциональна M я = 1 | | х I - μ | | 2 . Следовательно, мы переводим все точки на - μ , так что их среднее арифметическое становится 0 для удобства вычислений. Обозначим переведенные точки как x i = x iβββi=1Mxiμ2μ0xi=xiμ, Давайте также заметим, что дисперсия теперь может быть выражена просто как i=1Mxi2 .

Теперь о выборе линии. Мы можем описать любую линию как множество точек, которые удовлетворяют уравнению , для некоторых векторов v , w . Обратите внимание, что если мы переместим линию на некоторый вектор γ, ортогональный к v , то все проекции на линию также будут перемещены на γ , следовательно, среднее значение проекций будет перемещено на γx=αv+wv,весγvγγследовательно, дисперсия проекций останется неизменной. Это означает, что мы можем перемещать линию параллельно самой себе, а не изменять дисперсию проекций на эту линию. Опять же, для удобства, давайте ограничимся только линиями, проходящими через нулевую точку (это означает линии, описываемые ).x=αv

Хорошо, теперь предположим, что у нас есть вектор который описывает направление линии, которая является возможным кандидатом на строку, которую мы ищем. Нам нужно рассчитать дисперсию проекций на линию α v . Нам понадобятся точки проекции и их среднее значение. Из линейной алгебры известно , что в этом простом случае проекция х ' я на альфа V является х я , v / | | v | | 2 . Давайте теперь ограничимся только единичными векторами v . Это означает, что мы можем написать длину проекции точки хvαvxiαvxi,v/v2v наVпросто какх ' I ,v.xivxi,v

В некоторых из предыдущих ответов кто-то сказал, что PCA минимизирует сумму квадратов расстояний от выбранной линии. Теперь мы можем видеть, что это правда, потому что сумма квадратов проекций плюс сумма квадратов расстояний от выбранной линии равна сумме квадратов расстояний от точки . Максимизируя сумму квадратов проекций, мы минимизируем сумму квадратов расстояний и наоборот, но это было только вдумчивое отступление, вернемся к доказательству сейчас.0

Что касается среднего значения проекций, давайте заметим, что является частью некоторого ортогонального базиса нашего пространства, и что если мы спроецируем наши точки данных на каждый вектор этого базиса, их сумма будет аннулирована (это так, потому что проецирование на векторы из базиса аналогичны записи точек данных в новый ортогональный базис). Таким образом, сумма всех проекций на вектор v (назовем сумму S v ) и сумма проекций на другие векторы из базиса (назовем это S o ) равна 0, потому что это среднее значение точек данных. Но S v ортогональна S o ! Это означает, что S o = S vvvSvSoSvSoSo=Sv=0 .

Таким образом, среднее значение наших прогнозов равно . 0Ну, это удобно, потому что это означает, что дисперсия - это просто сумма квадратов длин проекций или в символах

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

Что ж, вдруг ковариационная матрица выскочила. Давайте обозначим его просто . Это означает, что мы сейчас ищем единичный вектор v, который максимизирует v TX v для некоторой полуположительной определенной матрицы XXvvTXvX .

Теперь возьмем собственные векторы и собственные значения матрицы и обозначим их через e 1 , e 2 , , e n и λ 1 , , λ n соответственно, так что λ 1λ 2 , λ 3 . Если значения λ не дублируются, собственные векторы образуют ортонормированный базис. Если они это сделают, мы выбираем собственные векторы таким образом, что они образуют ортонормированный базис.Xe1,e2,,enλ1,,λnλ1λ2,λ3λ

Теперь давайте посчитаем для собственного вектора e i . Мы имеем е Т яХ е я = е Т я( λ я е я ) = λ я ( е я | | 2 ) 2 = λ я .vTXvei

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

Довольно хорошо, это дает нам для e 1 . Теперь давайте возьмем произвольный вектор vλ1e1v . Так как собственные векторы образуют ортогональный базис, можно записать , и мы имеем Е п I = 1v , е я 2 = 1 . Обозначим через & beta ; я = v , е яv=i=1neiv,eii=1nv,ei2=1βi=v,ei .

Теперь давайте посчитаем . Мы переписываем v как линейную комбинацию e i и получаем: ( n 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
Покажите мне обывателя, который знает основную линейную алгебру, и я покажу вам бакалавра по математике.
вероятностная

Икся'αvИкся,v/| |v| |2Икся,v/| |v| |

1
Я думаю, что это лучшее объяснение PCA, которое я когда-либо видел. Спасибо.
Nimitz14

1
Это мое любимое объяснение, которое также показывает, почему собственные векторы максимизируют дисперсию.
Ромвелл

47

Хорошо, я попробую. Несколько месяцев назад я порылся в большом количестве литературы, чтобы найти интуитивное объяснение, которое я мог бы объяснить не статистику. Я нашел выводы, которые используют множители Лагранжа, наиболее интуитивно понятны.

Допустим, у нас есть данные больших размеров - скажем, 30 измерений, сделанных на насекомом. У жуков есть разные генотипы и немного разные физические особенности в некоторых из этих измерений, но с такими данными большого размера трудно сказать, какие насекомые принадлежат к какой группе.

PCA - это метод уменьшения размеров за счет:

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

Или в математических терминах:

  1. Yj=ajx (линейная комбинация для j-го компонента)
  2. k>jV(Yk)<V(Yj)
  3. akaj=0

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

Я рекомендую почитать книгу «Введение в многомерный анализ данных». для полной деривации (стр. 50), но основная идея состоит в том, что задачи последовательной оптимизации (максимизация дисперсии) ограничены так, что a'a = 1 для коэффициентов a (чтобы предотвратить случай когда дисперсия может быть бесконечной) и ограничена, чтобы убедиться, что коэффициенты являются ортогональными.

Это приводит к оптимизации с использованием множителей Лагранжа, что, в свою очередь, показывает, почему используются собственные значения. Мне лень его печатать (извините!) Но этот PDF довольно хорошо проходит через это доказательство.

Я бы никогда не попытался объяснить это своей бабушке, но если бы мне пришлось говорить в основном о методах уменьшения размеров, я бы указал на этот тривиальный пример проекции (не PCA). Предположим, у вас есть мобильный телефон Calder, который очень сложный. Некоторые точки в трехмерном пространстве близки друг к другу, другие нет. Если мы повесили этот мобильный телефон на потолок и осветили его под одним углом, мы получим проекцию на плоскость меньшего размера (2-я стена). Теперь, если этот мобильный в основном широкий в одном направлении, но худой в другом, мы можем повернуть его, чтобы получить проекции, которые отличаются полезностью. Интуитивно понятно, что тощая фигура в одном измерении, спроецированная на стену, менее полезна - все тени перекрываются и не дают нам много информации. Тем не менее, если мы повернем его так, свет сияет на широкой стороне, мы получаем более четкую картину данных уменьшенного размера - точки распределены больше. Это часто то, что мы хотим. Я думаю, что моя бабушка могла понять это :-)


6
Это очень непрофессионал ;-)

2
Это немного математично, но лучший способ понять что-то - это извлечь это.
Винс

29
У тебя исключительно хорошо образованная бабушка :-).
whuber

7
мне нравится объяснение с сиянием света на 3-й структуре
Нил Макгиган

(+1) Все это отличные ответы, но я бы тоже дал ответ.
Digio

37

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

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

«После» 1-й пр. Компонент был измерен, он, так сказать, «удален» из облака со всей дисперсией, которую он составлял, и размерность облака уменьшается на единицу. Далее все повторяется со вторым собственным значением и вторым собственным вектором - 2-й пр. компонент записывается, а затем «удаляется». И т.п.

Итак, еще раз: собственные векторы являются косинусами направления для главных компонентов, в то время как собственные значения являются величиной (дисперсией) в главных компонентах. Сумма всех собственных значений равна сумме дисперсий, которые находятся на диагонали матрицы дисперсии-ковариации. Если вы передадите «магнитную» информацию, хранящуюся в собственных значениях, в собственные векторы, чтобы добавить ее к «ориентационной» информации, хранящейся в ней, вы получите то, что называется нагрузками главных компонентов ; Эти нагрузки - потому что они несут оба типа информации - являются ковариациями между исходными переменными и основными компонентами.

Позже PS Я хочу особо подчеркнуть здесь терминологическую разницу между собственными векторами и нагрузками . Многие люди и некоторые пакеты (в том числе некоторые из них ) легко используют оба термина взаимозаменяемо. Это плохая практика, потому что объекты и их значения разные. Собственными векторами являются направляющие косинусы, угол ортогонального «вращения», которым равна PCA. Нагрузки представляют собой собственные векторы, засеянные информацией об изменчивости или величине повернутых данных. Нагрузки представляют собой коэффициенты ассоциации между компонентами и переменными, и они прямо сопоставимы с коэффициентами ассоциации, вычисленными между переменными - ковариациями, корреляциями. , на котором вы основываете свой PCA. И собственные векторы, и нагрузки одинаковы в том отношении, что они служат регрессионными коэффициентами при прогнозировании переменных по компонентам (а не наоборот! Здесь или здесь .R или другими скалярными произведениями.1). Собственные векторы - это коэффициенты для прогнозирования переменных с помощью необработанных оценок компонентов. Нагрузки - это коэффициенты для прогнозирования переменных по шкалированным (нормализованным) оценкам компонентов (неудивительно: нагрузки накапливают информацию об изменчивости, следовательно, используемые компоненты должны быть лишены ее). Еще одна причина, по которой не следует смешивать собственные векторы и нагрузки, заключается в том, что некоторые другие методы уменьшения размерности, помимо PCA, такие как некоторые формы факторного анализа, вычисляют нагрузки напрямую, минуя собственные векторы. Собственные векторы являются произведением собственного разложения или разложения по сингулярному значению; некоторые формы факторного анализа не используют эти разложения и приводят к нагрузкам с другой стороны. Наконец, это нагрузки, а не собственные векторы, с помощью которых вы интерпретируете компоненты или факторы (если вам нужно интерпретировать их). Загрузка - это вклад компонента в переменную: в PCA (или факторный анализ) компонент / фактор загружается в переменную, а не наоборот. В комплексных результатах PCA следует сообщать как собственные векторы, так и нагрузки, как показано, например,

Смотрите также о нагрузках против собственных векторов.


1


@amoeba, я не настаиваю, и вы можете использовать любую терминологию, к которой вы привыкли. Я четко объяснил, почему я считаю, что термины «нагрузки» и «собственные векторы» лучше разделять. Я следую классической традиции, такой как в Хармане. Современный факторный анализ, если я правильно помню традиции.
ttnphns

(Продолжение.) В любом случае, вы сами знаете, что термин «нагрузки», хотя и весьма сомнительный, тем не менее не смешивается с «собственным вектором» в других многомерных анализах, таких как, например, дискриминантный анализ. Еще раз, как я выразился, в загрузках PCA 1) включить информацию о величине вариации; 2) Являются ли ковариации / корреляции и, следовательно, используются для интерпретации. Значения собственного вектора - нет.
ttnphns

2
+1 Я читал ваши посты о PCA и других связанных с этим вопросах, и многому научился.
Антони Пареллада

29

ОК, совершенно не математический ответ:

Если у вас есть куча переменных по группе предметов и вы хотите уменьшить их до меньшего числа переменных по тем же предметам, при этом теряя как можно меньше информации, то PCA - это один из инструментов для этого.

Он отличается от факторного анализа, хотя они часто дают схожие результаты, поскольку FA пытается восстановить небольшое количество скрытых переменных из большего числа наблюдаемых переменных, которые, как полагают, связаны с латентными переменными.


Привет, Питер! Рад видеть тебя здесь. Это действительно хороший, простой, не математический ответ.
JD Long

3
+1 за упоминание ФА, которое, похоже, больше никто не обсуждает, и к которому, кажется, смешиваются объяснения некоторых людей.
Gung

Кажется, нет никакой разницы в целях PCA и FA - оба стремятся вращаться, чтобы вы могли видеть наиболее важные факторы (скрытые векторы, или собственные размеры, или единичные векторы или что-то еще). Но FA, кажется, не алгоритм, а семейство связанных методов (друг с другом, SVD и PCA) с соответственно плохо определенными целями (то есть разными и взаимно несовместимыми, поэтому разные варианты «оптимизируют» разные вещи).
Дэвид М. У. Пауэрс

Было бы правильно сказать, что PCA является одним из многих возможных способов проведения факторного анализа?
августа

Терминология в этой области, как известно, противоречива.
Питер Флом

29

Проще всего делать математику в 2D.

Каждая матрица соответствует линейному преобразованию. Линейные преобразования можно визуализировать, взяв запоминающуюся фигуру на плоскости и увидев, как эта фигура искажается линейным преобразованием:

линейные преобразования (рис .: Фланиган и Каздан )

  • Мона Лиза Собственные векторыsчасеaр .)
  • ×1 )
  • PCA футбол
    1знак равно23%[1]+46%[2]+39%[3]

е(aИкс+бY)знак равноaе(Икс)+бе(Y)+aбИксYиз какого-то интересного пространства. Например :

лица

Сам PCA является еще одним примером, наиболее знакомым для статистиков. Некоторые другие ответы, такие как Freya, дают реальные приложения PCA.

-----похоже как?Икс42,8%[Икс]57,2%[Y]


2
На самом деле это своего рода совпадение, что повороты являются линейными, и поэтому это удобный способ описания того, что происходит с негеометрическими данными. Совпадение связано с квадратичной природой как декартово-евклидова пространства, так и центральной предельной теоремы / гауссиана. А именно сигма складывается в квадратично-подобные ортогональные измерения, где наша ND вращательная / ортогональная терминология берет свое начало по аналогии с 2D и 3D пространством.
Дэвид М. У. Пауэрс

@DavidMWPowers Интересно. Я думаю о вращениях с точки зрения линейной алгебры.
изоморфизм

27

После отличного поста JD Long в этой теме я искал простой пример и код R, необходимый для создания PCA, а затем вернулся к исходным данным. Это дало мне некоторую непосредственную геометрическую интуицию, и я хочу поделиться тем, что я получил. Набор данных и код можно напрямую скопировать и вставить в R-форму Github .

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


В качестве предостережения идея является чисто иллюстративной для вычислительного процесса: 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[PC1PC2111-1]

~[-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) * 100~65%35,2%

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

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

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

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

X[0.7,0.7]TПК1[0.7,-0.7]TПК2

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

[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

UΣВT) метод может быть применен для расчета PCA вручную; на самом деле, это метод, используемый в prcomp(). Шаги могут быть прописаны как:

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

Результат показан ниже, во-первых, расстояния от отдельных точек до первого собственного вектора, а на втором графике - ортогональные расстояния до второго собственного вектора:

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

Если бы вместо этого мы построили значения матрицы оценок (ПК1 и ПК2) - больше не «точки плавления» и «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 x 64 Поскольку основное предположение PCA заключается в том, что ваши переменные коррелируют, это отличный способ уменьшить этот нелепый объем данных до объема, который можно отследить. Как уже было сказано много раз, собственные значения представляют величину дисперсии, объясняемой переменными (столбцами). В этом случае собственное значение представляет дисперсию напряжения в конкретный момент времени, вносимую конкретным электродом. Так что теперь мы можем сказать: «О, хорошо, электродxв данный момент yмы должны сосредоточиться на дальнейшем анализе, потому что именно здесь происходит наибольшее изменение ». Надеюсь, это поможет. Любить эти регрессионные графики!


12

Я мог бы быть плохим человеком, чтобы ответить на это, потому что я пресловутая бабушка, которая объяснила мне эту концепцию и не намного, но здесь идет:

Предположим, у вас есть население. Большая часть населения падает смертельно от сердечных приступов. Вы пытаетесь выяснить, что вызывает сердечные приступы.

У вас есть две части данных: рост и вес.

Теперь ясно, что есть НЕКОТОРЫЕ отношения между весом и сердечными приступами, но корреляция не очень сильна. Есть тяжелые люди, у которых много сердечных приступов, но некоторые нет.

Теперь вы делаете PCA, и он говорит вам, что вес, разделенный на рост («масса тела»), является гораздо более вероятным предиктором сердечных приступов, чем вес или рост, потому что, о чудо, «реальность» заключается в том, что это масса тела, которая вызывает сердечные приступы.

По сути, вы делаете PCA, потому что вы измеряете кучу вещей, и вы на самом деле не знаете, действительно ли это основные компоненты или есть какой-то более глубокий базовый компонент, который вы не измеряли.

[Пожалуйста, не стесняйтесь редактировать это, если это полностью с базы. Я действительно не понимаю концепцию более глубоко, чем это].


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

9
Отличный пример, но технически PCA не может найти объяснение массы тела, поскольку оно может найти только линейные объяснения, то есть взвешенные суммы исходных переменных. Однако, если вы берете журналы ваших входных переменных, соотношение становится разницей, и, если это правильное объяснение, PCA сможет его найти.
Дэвид МВТ Пауэрс

10

Вот один для бабушки:

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

Левая правая линия - это первый собственный вектор, а линия вверх и вниз - второй собственный вектор. Общее количество автомобилей, идущих влево и вправо, является первым собственным значением, а число тех, которые идут вверх и вниз, является вторым собственным значением.


1
Эта аналогия, кажется, разрушается при рассмотрении. Что если наибольшее и второе по величине направление движения не являются ортогональными? Как ваша аналогия помогает нам понять PCA в таком случае?
whuber

Я думаю, бабушка понимает, что означает ортогональность? Да, есть некоторые недостатки, но это только начало. Я думаю, это здорово, что здесь было так много ответов.
BajaBob

2
Независимо от того, понимает ли «бабушка» сообщение, оно должно быть достаточно ясным и правильным. Ваша аналогия, кажется, не достигает ни одной из этих целей. Это может быть потому, что я не понимаю аналогию: я не могу связать это с тем, что PCA или делает. Возможно, вы могли бы уточнить, как работает аналогия, чтобы другие читатели не становились такими же озадаченными, как я.
whuber

Тот факт, что они не ортогональны, означает, что вам нужен ICA или FA, а не PCA. Если бы бабушка смотрела «Звездный путь» (да, она того поколения), когда они показывают неработающий корабль под углом - PCA будет стремиться восстановить исходную плоскость, соответствующую масштабу и виду (галактическая плоскость или оси корабля).
Дэвид М. У. Пауэрс

-1. Я согласен с @whuber, что эта аналогия не работает. Какими здесь должны быть данные, из какой ковариационной матрицы являются эти "собственные векторы"? Я совсем не понимаю.
амеба

10

Этот ответ дает интуитивное и нематематическое толкование:

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

Другими словами: первый главный компонент вектора расскажет вам больше всего о облаке точек после проецирования всех точек на вектор. Это интуитивная интерпретация, конечно.

Посмотрите на этот эллипсоид (перейдите по ссылке для 3D-модели) :

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

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

Я предполагаю, что красный вдоль самой длинной оси. И это на самом деле рассчитанный 1-й основной компонент! Какой следующий - я бы выбрал синий вдоль следующей самой длинной оси.

Обычно вы хотите проецировать набор точек из многомерного пространства на двухмерную плоскость или в трехмерное пространство .

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


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


10

Хотя приведено много примеров, дающих интуитивное понимание PCA, этот факт может с трудом понять с самого начала, по крайней мере, для меня.

«Что было общего в PCA, что общего у всех этих разных примеров из разных дисциплин?»

Что помогло мне интуитивно понять, так это пара математических параллелей, поскольку очевидно, что математика - это легкая часть для вас, хотя это не помогает объяснить это вашей бабушке ...

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

||ИксВ-Y||знак равно0

Или на английском разбить ваши данные Yна две другие матрицы, которые как-то проливают свет на данные? Если эти две матрицы работают хорошо, то ошибка между ними иY не должно быть слишком много.

СПС дает вам полезную факторизацию YПо всем причинам, которые сказали другие люди. Это нарушает матрицу данных, которые у вас есть,Yвниз на две другие полезные матрицы. В этом случае,Икс будет матрица, где столбцы являются первыми К ПК, которые вы сохранили, и В это матрица, дающая вам рецепт для восстановления столбцов матрицы Y используя столбцы Икс, В это первый К ряды Sи все Втранспонирование. Собственные значения на диагоналиSв основном, вес, какие компьютеры являются наиболее важными. Вот как математика прямо говорит вам, какие компьютеры являются наиболее важными: каждый из них взвешивается по своим собственным значениям. Тогда матрицаВT рассказывает ПК как совмещать

Я думаю, что люди привели много интуитивных примеров, поэтому я просто хотел поделиться этим. Это помогло мне понять, как это работает. Существует множество интересных алгоритмов и методов, которые делают вещи, подобные PCA. Разреженное кодирование - это подполе машинного обучения, которое все о матрице факторингаA на две другие полезные и интересные, которые отражают закономерности в A,


9

Вот математический ответ: первый главный компонент - самое длинное измерение данных. Посмотрите на это и спросите: где самые широкие данные? Это первый компонент. Следующий компонент - перпендикуляр. Таким образом, сигара данных имеет длину и ширину. Это имеет смысл для всего, что является продолговатым.


6
К сожалению, правильность этого ответа зависит от того, как интерпретируется смутное выражение «самый длинный». Многие естественные и релевантные интерпретации, такие как диаметр , будут неверными.
whuber

PCA на самом деле очень хорошо работает с различными типами естественного способа измерения размера / размера. Вам просто нужно заменить ковариационную матрицу на матрицу, чтобы измерить «размерность» в любом направлении (матрица просто должна быть определена положительно или симметрично.) Это так же, как QuickSort работает для другого оператора заказа, но вы получите разные результаты для разных операторов заказа.
Джеймс Ли

9

Я понимаю, что основные компоненты таковы: данные с несколькими переменными (рост, вес, возраст, температура, длина волны, процент выживания и т. Д.) Могут быть представлены в трех измерениях для построения взаимосвязи.

Теперь, если вы хотите как-то разобраться в «трехмерных данных», вы можете узнать, какие 2D-плоскости (сечения) этих трехмерных данных содержат наибольшую информацию для данного набора переменных. Эти 2D плоскости являются основными компонентами, которые содержат пропорции каждой переменной.

Думайте о главных компонентах как о самих переменных, с составными характеристиками из исходных переменных (эту новую переменную можно охарактеризовать как вес тела, рост, возраст и т. Д.). Когда вы наносите один главный компонент (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 (возьмите первый компонент). Если у вас есть группа точек в трехмерном пространстве, которые в основном плоские, и вы хотите узнать уравнение этой плоскости, сделайте это через PCA (возьмите наименьший значимый компонентный вектор, и он должен быть нормальным к плоскости).


7

Почему так собственные значения / собственные векторы?

При выполнении PCA вы хотите вычислить некоторый ортогональный базис путем максимизации прогнозируемой дисперсии для каждого базисного вектора.

Вычислив предыдущие базисные векторы, вы хотите, чтобы следующий был:

  • ортогонально предыдущему
  • норма 1
  • максимизация прогнозируемой дисперсии, т.е. с максимальной нормой ковариации

Это ограниченная задача оптимизации, и множители Лагранжа (здесь для геометрической интуиции, см. Страницу википедии) говорят вам, что градиенты цели (прогнозируемая дисперсия) и ограничения (единичная норма) должны быть "параллельными" в оптимуме.

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


5
Определенно не объяснение неспециалисту - ортогональные базисные векторы? максимизация проекции дисперсии? ограниченная проблема оптимизации? Множитель Лагранжа? Это очень «жаргонизированные» термины. Покажите непрофессионала, который понимает, что это значит, и я покажу вам математику / статистику
вероятностный

6

По сути, PCA находит новые переменные, которые представляют собой линейные комбинации исходных переменных, так что в новом пространстве данные имеют меньше измерений. Представьте себе набор данных, состоящий из точек в трех измерениях на поверхности плоской пластины, удерживаемой под углом. В исходных осях 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

Да, вам нужно представить его как облако точек, как с изображениями в других ответах. Предварительная обработка с какой-либо формой обнаружения кромок и / или пороговой обработки, вероятно, будет частью «уловок», которые я упомянул. Но чтобы работать со сложными фотографиями, нужно уловить кандидата.
Дэвид МВТ Пауэрс

@whuber Я фактически использовал PCA (хорошо SVD), чтобы найти эти вращения при калибровке стереоизображения! Это определенно то же чувство поворота.
Дэвид М. У. Пауэрс

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-плоскости), сохраняя при этом столько информации, сколько возможно. Изменит это в ответе.
vonjd

Это, безусловно, верно (и объяснено во многих других существующих ответах в этой теме), но, как правило, должно быть больше ответов, опубликованных в системе SE, и они должны быть в состоянии стоять самостоятельно, например, если ссылка не работает.
gung

1
Пример чайника интересный. Вы говорите, что PCA - это проекция в пространство более низкого измерения при сохранении как можно большего количества «информации». Но .... что такое информация? В случае PCA это означает поддержание максимально возможного общего отклонения. Пример чайника больше похож на утверждение о том, что информация «наиболее сохранена» при использовании проекции в конкретной плоскости, но это мало объясняет, как PCA делает это и является ли она «лучшим» выбором «информации». Например, LDA также является проекцией, предназначенной для сохранения информации, но не такой, как PCA.
Мартин Ветерингс

Если бы ваш чайник был бы более круглым / круглым (менее высоким), чем PCA, «выбрал бы» другое пересечение, чтобы сохранить большую часть «информации».
Мартин Ветерингс

-4

Возможно, поздно в этих анализах подразумевается предположение, что данные из группы I отличаются от группы II, и каждый пытается найти, какой компонент, вероятно, будет основным фактором, способствующим разнице.

Выполнение анализа PCA, которое приводит к идентичным эллипсоидам для 2 разных наборов, затем показывает, что эти два набора не отличаются ни по одному из измеренных вами параметров.


2
Интересно, если вы думаете о MANOVA. Если бы вы запустили два отдельных PCA, вы бы только показали, что структура корреляции была схожей.
банду

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