Понимание анализа главных компонентов | Кодементор

Ришаб Кумар (Этот пост импортирован из моего оригинального поста на Medium)

2 января 2018 г.

Цель этого поста — дать читателю подробное представление об анализе главных компонентов с необходимыми математическими доказательствами.

Читать надо на большом экране. Экран телефона не отображает изображения PNG должным образом, а изображения важны. 😃

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

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

По мере увеличения размерности данных возрастает и сложность их визуализации и выполнения вычислений. Итак, как уменьшить размеры data-
* Удалите лишние размеры
* Сохраняйте только самые важные размеры

перерыв1

Сначала попытайтесь понять некоторые термины —

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

Ковариация: Это мера степени, в которой соответствующие элементы из двух наборов упорядоченных данных перемещаются в одном направлении. Формула показана выше, обозначенная ков (х, у) как ковариация Икс а также у.
Здесь, xi значение x в ит измерение_.
х бар_ и и бар обозначают соответствующие средние значения.
Один из способов наблюдения за ковариацией — это то, насколько взаимосвязаны два набора данных.

Положительная ковариация означает, что X и Y связаны положительно, т. е. по мере увеличения X Y также увеличивается. Отрицательная ковариация изображает прямо противоположное отношение. Однако нулевая ковариация означает, что X и Y не связаны.

Продолжить перерыв1

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

Итак, что делает анализ главных компонентов (PCA)?

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

Как работает PCA —

  1. Вычислить ковариационную матрицу Икс точек данных.
  2. Вычислите собственные векторы и соответствующие собственные значения.
  3. Отсортируйте собственные векторы в соответствии с их собственными значениями в порядке убывания.
  4. Выберите первые k собственных векторов, и это будут новые k измерений.
  5. Преобразуйте исходные n-мерные точки данных в k измерений.

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

Убедитесь, что вы понимаете собственные векторы и собственные значения, прежде чем двигаться дальше.

Предполагая, что у нас есть знания о дисперсии и ковариации, давайте посмотрим, что Ковариационная матрица является.

Ковариационная матрица некоторого набора данных в четырех измерениях a, b, c, d.
Va : дисперсия по измерению a
Ca,b : Ковариация по размерам a и b

Если у нас есть матрица X размерности m*n такая, что она содержит n точек данных m измерений, то ковариационная матрица может быть рассчитана как

Важно отметить, что ковариационная матрица содержит —
* разброс размеров основных диагональных элементов.
* ковариация размеров как недиагональных элементов.

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

Кошка, просто чтобы привлечь ваше внимание. 😃

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

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

Это определяет цель PCA —

  1. Найдите линейно независимые измерения (или основу представлений), которые могут без потерь представлять точки данных.
  2. Эти недавно найденные измерения должны позволить нам предсказать/реконструировать исходные измерения. Ошибки реконструкции/проекции должны быть сведены к минимуму.

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

Скажем, пурпурная линия будет нашим новым измерением.
Если вы видите красные линии (соединяющие проекции синих точек на пурпурной линии), т.е. перпендикулярное расстояние каждой точки данных от прямой линии является ошибкой проецирования. Сумма ошибок всех точек данных будет общей ошибкой проекции.
Наши новые точки данных будут проекциями (красными точками) этих исходных синих точек данных. Как мы видим, мы преобразовали 2-мерные точки данных в одномерные точки данных, спроецировав их на 1-мерное пространство, то есть на прямую линию. Эта пурпурная прямая называется главная ось. Поскольку мы проецируем в одно измерение, у нас есть только одна главная ось.

Ясно, что второй вариант прямой линии лучше, потому что —
* Ошибка проектирования меньше, чем в первом случае.
* Вновь спроецированные красные точки разбросаны более широко, чем в первом случае. т.е. больше дисперсии.

Вышеупомянутые два пункта связаны между собой, т.е. если мы минимизируем ошибку реконструкции, дисперсия будет увеличиваться.
Как ?
Доказательство : (По желанию)

Шаги, которые мы выполнили до сих пор —
* Мы рассчитали ковариационную матрицу матрицы исходного набора данных ИКС.

Теперь мы хотим преобразовать исходные точки данных так, чтобы ковариационная матрица преобразованных точек данных была диагональной матрицей. Как это сделать ?

Вот в чем хитрость: если мы найдем матрицу собственных векторов Cx и используем ее в качестве P (P используется для преобразования X в Y, см. изображение выше), то Cy (ковариация преобразованных точек) будет диагональной матрицей. Следовательно, Y будет набором новых/преобразованных точек данных.
Теперь, если мы хотим преобразовать точки в k измерений, мы выберем первые k собственных векторов матрицы Cx (отсортированных по убыванию в соответствии с собственными значениями), сформируем из них матрицу и будем использовать их как P.

Итак, если у нас есть m-мерные исходные n точек данных, то
Х : м*н
П : к*м
Y = PX: (k*m)(m*n) = (k*n)
Следовательно, наша новая преобразованная матрица имеет n точек данных, имеющих k измерений.

Но почему этот трюк работает?
Доказательство:

Сначала давайте посмотрим на некоторые теоремы —

  • Теорема-1:
    Обратной ортогональной матрицей является ее транспонирование, почему?

Доказательство :

Доказательство :

Имея эти теоремы, мы можем сказать, что

Симметричная матрица диагонализируется матрицей своих ортонормированных собственных векторов. Ортонормированные векторы просто нормализуются ортогонально
векторы. (что такое нормализация? google 😉 )

Очевидно, что выбор P диагонализует Cy. Это было целью PCA. Мы можем суммировать результаты PCA в матрицах P и Cy.

  • Главные компоненты X являются собственными векторами Cx.
  • i-е диагональное значение Cy — это дисперсия X вдоль pi

Вывод

В следующем посте мы будем реализовывать PCA в python и использовать его для увеличения данных о цвете.

Примечание: PCA — это аналитический подход. Вы можете сделать PCA, используя SVD, или вы можете сделать PCA, выполняя собственное разложение (как мы сделали здесь), или вы можете сделать PCA, используя множество других методов. SVD — это просто еще один численный метод. Так что не путайте термины ППШ и СВД. Тем не менее, есть некоторые факторы производительности, когда иногда выбирают SVD вместо собственного разложения или наоборот (не то, чтобы вас это сильно беспокоило). Мы рассмотрим SVD в наших следующих постах.

Давайте обсудим в комментариях, если вы нашли что-то не так в посте или у вас есть что добавить. и дай мне хлопать 😛
Спасибо.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *