Я: Итак, мисс PCA, расскажите, пожалуйста, о себе, чем вы зарабатываете на жизнь?
PCA: Ну, я специалист по уменьшению размерности данных. Люди нанимают меня для проецирования высокоразмерных данных на низкоразмерное подпространство.
Я: Хорошо! Итак, каковы ваши руководящие принципы, как вы осуществляете эту трансформацию?
PCA: проецируя исходные данные на подпространство более низкого измерения, я стараюсь сохранить как можно больше различий в данных. Более того, я всегда слежу за тем, чтобы оси в создаваемых мною новых системах координат были ортогональны друг другу.
Я: Интересно! и как вы организуете эту дисперсию в маломерном пространстве?
PCA: я назначаю максимально возможную дисперсию первой оси в нижнем измерении, затем я назначаю вторую по величине дисперсию второй оси, третью по величине дисперсию третьей оси и так далее. Таким образом, вместо того, чтобы навязывать своим работодателям конкретную низкоразмерную систему, я позволяю им выбирать количество измерений, которые они хотят сохранить, в зависимости от того, сколько отклонений они хотят сохранить от исходных данных.
Я: Ладно, понял! Итак, на работе вы сначала выбираете ось, а затем пытаетесь максимизировать дисперсию по этой оси.
PCA: Нет, для меня это будет большой работой. Я работаю шустро, скорее стараюсь минимизировать ошибку проецирования данных, при этом трансформируя их из более высоких измерений в более низкомерное пространство. Когда я минимизирую ошибку прогнозирования, дисперсия автоматически максимизируется благодаря теореме моего друга мистера Пифагора.
Я: Как он вам помогает? Можете ли вы уточнить больше.
PCA: ошибка проекции — это количество информации, которое я должен потерять, если я хочу спроецировать данные более высокого измерения на более низкие измерения. Математически это сумма перпендикулярных расстояний от оси, созданной до каждой из точек данных. Посмотрите на рисунок ниже. Если я хочу спроецировать 2D-данные на этом рисунке на горизонтальную ось, я должен отпустить расстояние, представленное пунктирными линиями, сумма всех этих пунктирных линий является ошибкой проецирования.
Я: Хорошо, но как минимизация суммы этих пунктирных линий приводит к максимизации дисперсии? Эта цифра не помогает мне получить интуицию.
PCA. Данные на этом рисунке имеют очень низкую корреляцию, и я предпочитаю корреляции. Давайте посмотрим на другой рисунок и поймем, как мне помогает теорема Пифагора.
PCA. Синие точки — это точки данных. Как видите, эти данные имеют положительную корреляцию. Теперь, если вы попросите меня свести эти 2D-данные к одной оси, все, что мне нужно сделать, это создать ось, которая пересекает эти данные, чтобы минимизировать ошибку проецирования (красные линии на этом рисунке). Это похоже на линейную регрессию, но здесь я минимизирую перпендикулярное расстояние, тогда как линейная регрессия минимизирует вертикальное расстояние. Итак, как и в случае с линейной регрессией, мне нужно выяснить ориентацию этой оси. Но, независимо от ориентации, среднее значение этого набора данных (центральная белая точка) не изменится. Теперь рассмотрим точку, выделенную желтым цветом. Коричневая линия — кратчайшее расстояние этой точки от среднего. Поскольку средняя и выделенная точки фиксированы, коричневая линия остается постоянной независимо от ориентации. Зеленая линия — это дисперсия выделенной точки на выбранной оси (поскольку дисперсия — это расстояние от среднего значения по оси). Длина зеленой и красной линий будет зависеть от ориентации оси на этом рисунке. Сумма красных и зеленых линий будет равна коричневой линии (вместе эти зеленые, красные и коричневые линии образуют прямоугольный треугольник), но поскольку коричневая линия постоянна, это означает, что если я решу минимизировать красную линию, зеленая линия будет автоматически максимизироваться.
Я: Отлично! да, я вижу, вы умны, теперь это легко, поэтому вы добавляете все ошибки проекции, а затем решаете уравнение для минимума, подобно тому, как линейная регрессия минимизирует вертикальное расстояние от линии?
PCA: Ого! ты серьезно сравниваешь мою работу с линейной регрессией? Все, что нужно сделать линейной регрессии, — это уложиться в одну линию, и все, ее работа окончена. Но для меня это не просто одна ось (или линия, которую вы можете назвать), иногда люди набрасывают на меня сотни измерений. Если я начну последовательно минимизировать ошибку проецирования для каждой оси, я потрачу столько времени на одну проблему, что люди просто начнут искать других специалистов. Я не хочу терять работу.
Я: Так как же тогда?
PCA: создание математических формул и поиск минимального значения не входит в мои обязанности. Слишком много работы! Все, что мне нужно, это просто ротация. Это все. Чтобы выполнить это вращение, я вызываю другого друга, господина собственного разложения. Он запрашивает только ковариационную матрицу и выполняет поворот за меня всего за одну операцию. Моя единственная работа заключается в том, чтобы убедиться, что я нормализую данные перед построением ковариационной матрицы, чтобы не быть обманутым индивидуальными шкалами признаков.
Я: Но прежде чем мы поговорим о собственном разложении, можем ли мы сказать, что линейная регрессия также максимизирует дисперсию, вы оба смотрите так близко, по крайней мере, для задачи с одной осью?
PCA: Нет! вернитесь к рисунку и убедитесь сами, расстояние по перпендикуляру от линии и расстояние по вертикали от линии — не одно и то же. Измерение вертикального расстояния от линии не создает прямоугольного треугольника, поэтому линейная регрессия не имеет ничего общего с дисперсией.
Я: Хорошо, вернемся к делу! Итак, вы говорите, что просто вращаете оси, а затем, в зависимости от необходимой дисперсии, люди выбирают количество осей, которые будут использоваться для представления данных.
PCA: Да, это все. Я просто выполняю собственное разложение ковариационной матрицы, чтобы повернуть оси ортогонально за один раз.
Я: Хорошо, но прежде чем я задам вопрос о собственном разложении, мне любопытно, почему ковариационная матрица защищает дисперсию?
PCA: потому что одной дисперсии недостаточно. Дисперсия может объяснить только разброс данных по осям пространства признаков. Это не помогает объяснить ориентацию данных, помогает ковариация. Матрица ковариации имеет дисперсию в виде диагональных элементов и ковариацию в виде недиагональных элементов. Итак, ковариационная матрица определяет как разброс (дисперсию), так и ориентацию (ковариацию) данных. Кроме того, мне очень помогает тот факт, что ковариационная матрица является квадратной и симметричной матрицей.
Я: я не уверен. Согласитесь, ковариационная матрица содержит всю полезную информацию, но я не могу понять, как вы используете ковариационную матрицу для поворота осей ваших данных?
PCA: Для меня матрица — это не что иное, как линейное преобразование, примененное к вектору. Подумай об этом! Элементы вектора представляют его направление, а значение представляет его величину. Когда вы умножаете матрицу на вектор, вы получаете другой вектор. Этот вектор имеет другие элементы и величину, чем исходный. Это означает, что матричное умножение изменило как направление вектора (примененное вращение), так и его величину (примененное масштабирование). Он изменил вектор. Ковариационная матрица — это тоже просто преобразование. Но особое преображение. Он вращает все векторы (наблюдения) набора данных в направлении наибольшего изменения данных. Это направление наибольшей дисперсии - все, что меня интересует, поэтому я использую матрицу ковариации, чтобы выяснить это направление.
Я: я до сих пор не совсем понимаю.
PCA: Позвольте мне повторить, я использую тот факт, что ковариационная матрица вращает все векторы (наблюдения) набора данных в направлении наибольшей дисперсии данных. strong> А что мне нужно? Направление наибольшей дисперсии данных. Это означает, что все, что мне нужно, это знать, какие векторы не поворачиваются матрицей ковариации (поскольку эти векторы уже находятся в направлении наибольшей дисперсии). Итак, если вектор имеет то же направление, что и направление наибольшей дисперсии, то он не будет поворачиваться матрицей ковариации. В линейной алгебре этот вектор называется собственным вектором. Это означает, что все, что мне нужно знать, — это собственные векторы ковариационной матрицы, которые дадут мне направление максимальной дисперсии, и это будут мои новые измерения.
Я: Понял! поэтому вы говорите, что ковариационная матрица вращает все векторы в направлении максимальной дисперсии, а поскольку собственные векторы не поворачиваются, это означает, что они являются направлением максимальной дисперсии. Ваша работа состоит только в том, чтобы вычислить эти собственные векторы?
PCA: Точно! видите, это так просто.
Я: Можете ли вы привести пример сравнения собственного вектора с любым другим вектором?
PCA: Как я уже говорил ранее, когда матрица работает с вектором, она поворачивает и масштабирует вектор. Однако для любой матрицы могут существовать некоторые векторы, которые не поворачиваются, матричная операция способна только масштабировать их. Таким образом, в основном матричное умножение на эти векторы становится эквивалентным скалярному умножению на этих векторах. Эти векторы называются собственными векторами, а коэффициент масштабирования называется собственными значениями. Давайте посмотрим на пример. Рассмотрим двумерную матрицу M=[1 2 ; 8 1] и рассмотрим два вектора, A=[1 2] и B=[3 4]. Посмотрим на их продукцию. МА = [5·10] = 5[1·2]. Следовательно, A является собственным вектором матрицы M, поскольку все, что могла сделать M, — это растянуть вектор на 5. Этот коэффициент масштабирования, равный 5, можно было бы назвать собственным значением собственного вектора A. Теперь MB = [11 28], это вектор не может быть записан как кратный вектору B, поэтому вектор B не является собственным вектором матрицы M, и M будет вращать и масштабировать этот вектор.
Я: Понятно, а как найти собственные векторы?
PCA: это простое собственное разложение ковариационной матрицы. Для матрицы ковариации, скажем, C, если существует собственный вектор, скажем, A, который масштабирует его только по собственному значению, скажем, лямбде, это означает, что мы можем записать это как простое уравнение умножения. С*А=лямда*А. Если существует много собственных векторов и собственных значений, мы можем использовать две отдельные матрицы для хранения каждого из них. Это то, что мы делаем, в собственном разложении.
Для ковариационной матрицы C существует собственная векторная матрица E и матрица собственных значений V, такие, что CE=VE, умножая обе части на обратную величину E, мы получаем C=V*E*E(обратная), это называется собственным разложением. Здесь V — матрица собственных векторов, а E — диагональная матрица собственных значений.
Как я упоминал ранее, выбор матрицы ковариации помогает мне, потому что собственное разложение работает только для квадратных метрик, поскольку для неквадратной матрицы не существует обратной. Еще одним дополнительным преимуществом ковариационной матрицы является то, что, поскольку она симметрична, она имеет ортонормированные собственные векторы, что невероятно помогает, если функции демонстрируют мультиколинеарность, применение PCA гарантированно дает основу, где это больше не проблема.
Таким образом, собственное разложение приводит к вращению осей с использованием собственных векторов и независимому масштабированию вдоль каждой оси с использованием собственных значений. Каждый последующий собственный вектор здесь представляет измерение с убывающим порядком дисперсии. Вы выбираете количество измерений, исходя из того, насколько дисперсии будет достаточно для ваших требований. После того, как вы выбрали количество собственных векторов, скалярное произведение собственных векторов с исходными точками данных будет проецировать исходные данные в новой системе координат.
Я: Но я думал, что разложение по сингулярным числам является более популярным подходом к задачам матричной факторизации.
PCA: SVD — это просто обобщение разложения по собственным числам. SVD всегда существует для матрицы любого типа, тогда как собственное разложение существует только для диагонализируемых матриц (квадратных матриц, которые также должны удовлетворять некоторым другим требованиям). Более того, SVD всегда приводит к матрице ортонормированных векторов, тогда как для собственного разложения для получения ортонормированных векторов входная матрица должна быть симметричной. Итак, вы видите, что разложение по собственным числам — это всего лишь частный случай SVD. Теперь SVD более популярен просто потому, что он работает с любой матрицей, что делает его полезным для многих других приложений, тогда как для применения собственного разложения требуется, чтобы матрица удовлетворяла вышеуказанным требованиям. Однако ковариационная матрица всегда квадратная, симметричная и обратимая. Таким образом, SVD или собственное разложение ковариационной матрицы даст тот же результат. Для уменьшения размерности вы также можете напрямую выполнять SVD матрицы данных, а не работать с ковариационной матрицей, однако в этом случае вы увеличиваете вычислительные требования, вводя в качестве входных данных матрицу большего размера (при условии, что ваши данные содержат больше наблюдений). чем характеристики). Кроме того, убедитесь, что вы имеете в виду централизовать свои данные, прежде чем применять SVD к матрице данных, тогда как ковариация автоматически позаботится об этом, поскольку вычитание из среднего встроено в определение ковариации.
Я: Спасибо! вы все объяснили. У меня больше нет вопросов, у вас есть какие-то заключительные мысли?
PCA: Да! много раз люди нанимали меня, а потом жалуются, что данные более низкого измерения не имеют смысла. К сожалению, они не понимают, что у меня есть ограничения, мне нужны хотя бы приблизительные гауссовские функции, чтобы получить значимые результаты. Если функции не являются гауссовскими, вам следует обратиться к моему двоюродному брату ICA (анализ отдельных компонентов). Более того, я занимаюсь только уменьшением линейной размерности. Меня следует вызывать только тогда, когда подпространство полезных данных предполагается линейным. Когда подпространство полезных данных может быть нелинейным, вам следует обратиться к моему другому двоюродному брату Kernel PCA или к любому из его друзей, которые специализируются на нелинейном уменьшении размерности.
Первоначально опубликовано на https://www.linkedin.com.