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

Математика для PCA:

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

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

Правила тригонометрии, которые следует держать под рукой:

Мы будем использовать косинус углов довольно часто, поэтому нам нужно очень быстро со следующим правилом для прямоугольного треугольника.

Второе фундаментальное правило тригонометрии, которое нам нужно знать, чтобы понять следующие шаги: Cos(A-B)=CosACosB + SinASinB.

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

Линейная алгебра: векторы

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

Что такое единичный вектор?

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

Матрицы:

Матрицы можно рассматривать как своего рода функции преобразования, которые можно применять к векторам для перемещения их координат или их масштабирования, или и того, и другого. В реальном мире данные поступают в виде матриц (конечно, не квадратных матриц). Например, если нам нужно собрать всю информацию о пациенте, такую ​​как рост, вес, уровни артериального давления, аллергия/отсутствие аллергии на определенные лекарства и т. д., у нас будет запись о каждом пациенте в виде строки в нашей матрице данных, и каждый из атрибутов, представляющих информацию о пациенте можно рассматривать как отдельные столбцы. В приведенном выше случае имеется «m» пациентов и «n» медицинских атрибутов, что формирует матрицу [m X n] (читается как m на n).

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

Векторные операции: скалярное произведение

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

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

И, наконец, нам нужно запомнить, как скалярное произведение двух векторов может быть выражено следующим образом:

Собственные векторы и собственные значения:

Как указано выше, матрицы можно рассматривать как преобразования, которые переводят вектор в векторном пространстве в другое положение. (Если вам нужно увидеть действительно хорошую визуализацию таких преобразований, смотрите видеоролики 3Blue1Brown в любой день!)Есть несколько особых типов векторов, которые не перемещаются (без изменения направления/вращения) даже после применяя трансформацию. Однако после преобразования их можно масштабировать на определенное значение. Эти векторы известны как «собственные векторы», а коэффициент масштабирования называется «собственными значениями».

Математически, если A — матрица преобразования, а v — собственный вектор, то Av = λv, λ — скаляр

Статистика ППШ:

Что мы понимаем под нормализацией столбцов?

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

Именно здесь на помощь приходит нормализация столбцов. Короче говоря, этот метод помогает вам сделать все значения для всех функций в диапазоне между [0,1]. Математический способ сделать это выглядит следующим образом:

Пусть [a1, a2, a3 …..an] — n значений признака «fi».

Таким образом, что: Max(ai)= a_max ≥ ai & Min(ai) =a_min ≤ ai ∀ ai (i: от 1 до n)

Теперь мы собираемся получить другой набор данных [a1`, a2`, a3`…..an`], где ai` определяется как:

ai` = (ai — a_min) / (a_max — a_min)

Теперь, если мы заменим ai на a_min и a_max (по одному) и вычислим соответствующее ai`, мы увидим, что ai` изменяется в диапазоне [0,1].

Что мы подразумеваем под стандартизацией столбцов?

Набор данных стандартизирован по столбцам, когда среднее значение равно 0, а стандартное отклонение равно 1. Это в основном означает централизацию наших точек данных вокруг начала координат. Кроме того, поскольку стандартное отклонение равно 1, нам нужно либо сжать наши точки данных, либо расширить их, чтобы сформировать новое преобразованное пространство.

Вот геометрическое изображение обоих методов, и набор данных необходимо предварительно обработать с помощью этих методов, прежде чем мы применим PCA:

Ковариация между атрибутами в матрице стандартизированных данных столбца:

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

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

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

Cov(f1,f2) = (1/n) * Σ (xi-x̅)(yi-ȳ), где f1 и f2 : признаки, xi, yi : точки данных в i-й строке и x̅, ȳ : среднее значение всех x и y.

Теперь, если матрица данных стандартизирована по столбцам, мы можем заменить средние значения нулями, что сделает наше уравнение следующим: Cov(f1,f2) = (1/n) * Σ (xi)(yi),что является не чем иным, как скалярным произведением векторов-столбцов f1 и f2, которое снова равно (f1)T f2 (транспонирование f1, умноженное на f2). Теперь вместо двух векторов-столбцов мы можем доказать тот же аргумент для всей матрицы данных A.

Таким образом, COV(A) = (A^T)(A) [A Transpose равно d X n, а A равно n X d, где n — количество строк d — количество признаков].

Обобщая все уравнения, которые мы уже изучили:

Понимание того, как приведенные выше математические и статистические формулы используются в PCA:

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

Проще говоря, PCA — это метод определения направления максимальной дисперсии данных в d-мерном пространстве. Определив направление максимальной дисперсии, мы определяем первый вектор главной компоненты (единичный вектор) в этом направлении, скажем, PC1. Следующий шаг — нарисовать ортогональный вектор PC2 ⊥ PC1. Помните, что количество основных компонентов равно количеству входных признаков.

Теперь было бы важно понять, почему мы хотим это сделать? Скажем, у нас есть две функции x и y (как показано на рисунке). Дисперсия или разброс почти равны по осям x и y, а это означает, что мы не можем отбросить ни одну из этих функций без потери важной информации.

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

Шаг 1. Найдите направление максимальной дисперсии (единичный вектор) и поверните ось в этом направлении

Теперь, возвращаясь к приведенному выше графику рассеяния, если мы каким-то образом узнаем направление максимальной дисперсии, то есть зеленой линии, и повернем нашу ось X, чтобы наложить ее на зеленую линию, то розовая линия, которая является ортогональной (перпендикулярной ) к зеленой линии будет эквивалентна нашей существующей оси Y. Итак, вместо функций x и y теперь у нас есть PC1 (зеленая линия) и PC2 (розовая линия). Теперь мы можем отказаться от ПК2, так как разворот и вся информация содержится в самом ПК1. Вы видите, что мы сделали? Мы обменяли две функции с двумя ПК, а затем отказались от одного из ПК.

Шаг 2. Спроецируйте все точки на наш новый единичный вектор PC1

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

Проекция любого xi на единичный вектор u (PC1)=›xi`= (u.xi) / ǁ u ǁ

Поскольку u — единичный вектор, следовательно, ǁ u ǁ = 1, таким образом, xi` = (u.xi) = (u^T )xi

Шаг 3. Первая задача оптимизации – найти единичный вектор, максимизирующий дисперсию

Дисперсия {(u^T ) xi}от i:1 до n= 1/n Σ ((u^T ) xi- (u^T ) x̅)²

Обратите внимание, что наши данные уже должны быть стандартизированы по столбцам, чтобы мы могли даже начать применять PCA. При этом второй член «(u^T ) » становится равным 0. Таким образом, наша задача оптимизации сводится к следующей форме:

Цель: Максимальная дисперсия {xi`} = 1/n Σ ((u^T ) xi)²

Ограничение: такое, что (u^T ) u=1(u — единичный вектор)

Шаг 4. Вторая (или альтернативная) задача оптимизации состоит в том, чтобы найти единичный вектор для минимизации суммы всех расстояний точек данных xi от PC1

Для любого вектора/точки данных xi расстояние «di» можно рассчитать с помощью теоремы Пифагора как di² = ǁ xi ǁ²- ((u^T ) xi)²(Примечание: (u^T) xi — длина проекции)

Это можно переписать как:

di² = ǁ xi ǁ² — ((u^T )xi)² = xi.xi — ((u^T )xi)² = (xi^T) xi- ((u^T )xi)²

Цель:минимизировать Σ ((xi^T) xi- (uT xi))²

Ограничение: такое, что (u^T )u=1(u — единичный вектор)

Шаг 5. Решение проблемы оптимизации

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

Av = λv

Здесь A — наша ковариационная матрица, которая всегда является симметричной матрицей [dXd], где d — количество признаков. Вспомните уравнение, которое мы только что узнали:

Таким образом, COV(A) [dXd] =( A^T) A [A Transpose is d X n & A is n X d, где n — количество строк, а d — количество Особенности]

Теперь собственные векторы COV(A) = V1, V2, …….Vd

Собственные значения COV(A) = λ1, λ2,λ3……..λd, такие, что λ1 ≥ λ2 ≥ λ3……..≥λd

Итак, в основном V1 — это наш единичный вектор u (PC1), который мы искали. Это тот случай, когда мы просто ищем один главный компонент PC1. Но в реальных сценариях вам может понадобиться n основных компонентов. Например, наша матрица данных A имеет 100 функций, и мы хотим сохранить только 50% или меньше функций. В этом случае нам нужно найти, скажем, [(λ1+ λ2+λ3…….. + λ52) / Σλi ] = 0,99. Таким образом, в этом примере, если мы сохраним первые 52 основных компонента и отбросим остальные, мы сохраним 99% информации.