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

Аудитории. Часть 1 не требует математического образования, в основном это логика и интуиция. В части 2 предполагается, что читатель знаком с матрицей, собственным значением и собственным вектором.

Содержание:

  • Введение
  • Интуиция PCA
  • Простой пример
  • Резюме

Введение

Что такое PCA и почему это вас волнует?

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

Есть много руководств по PCA. Что отличает этот пост от других?

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

В части I мы объясним, что такое PCA, когда он вам нужен и зачем он вам нужен. Мы покажем вам самую основную идею и интуицию PCA, а также несколько простых примеров и вручную вычислим некоторые числа, чтобы дать вам некоторое представление.

В части II мы преобразуем нашу интуицию PCA в математическую и интерпретируем данные из PCA.

Интуиция PCA

Ничего, кроме поворота координаты

Прежде чем мы объясним, что такое PCA, давайте взглянем на изображение 1. Наши данные - это зеленые точки. Изначально они представлены в координате (x, y). В реальных приложениях пары XY могут означать вес и рост. Это могут быть доход, здоровье и т. Д. Просто убедитесь, что они указаны в форме среднего отклонения, что означает, что среднее значение данных равно нулю во всех измерениях. И каким-то образом мы нашли новую ортогональную систему координат (ПК1, ПК2). В наших данных мы ясно видим, что данные распространяются вместе с осью PC1. И ось PC2 не очень представляет данные, потому что большинство наших точек данных очень близки к нулю на оси PC2.

Два простых вопроса
В: Можем ли мы отказаться от оси ПК2, когда мы используем координаты (ПК1, ПК2) и все еще можем сохранить большую часть информации?
О: Да, можем. Удаление оси PC2 аналогично проецированию всех точек данных на ось PC1, и при этом не происходит значительных изменений (x, y) после проецирования на ось PC1.
В: Можем ли мы увидеть, какой вклад вносит Ось xy есть на оси PC1 из изображения?
A: Да, мы можем. Понятно, что ось PC1 имеет гораздо большую проекцию на ось y, чем ось x.

Итак, что такое PCA? PCA - это поиск новой координаты на изображении 1. Точнее, PCA - это поворот системы координат (системы отсчета) для лучшего представления ваших данных. В большинстве случаев оказывается, что некоторые измерения не очень хорошо отражают наши данные, и их можно отбросить, не теряя большого количества информации. Но что за минуту, почему мы хотим уменьшить размер данных? В реальных приложениях наши данные могут иметь более сотни измерений. И во многих случаях оказывается, что новая координата, полученная из PCA, только несколько из этих сотен измерений отвечают за 90% данных. Это хорошая новость, потому что чем меньше размерность ваших данных, тем меньше вычислительная нагрузка. Еще одна причина, по которой мы хотели бы использовать PCA, заключается в том, что мы можем получить представление о наших данных. Он может сказать нам, какие несколько измерений в нашей исходной координате преобладают в данных. В ПОРЯДКЕ! Как мы можем найти эту новую координату? Давайте посмотрим на пример.

Простой пример

Форма среднего отклонения

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

(-1, 1), (0,3) и (1,5).

Давайте сначала переведем наши данные в форму отклонения. Среднее значение наших данных (0, 3). Форма среднего отклонения - это просто исходный набор данных за вычетом средних значений исходного набора данных. Таким образом, наш набор данных в форме среднего отклонения

(-1, -2), (0,0) и (1,2).

Как данные распространяются по заданной оси

Теперь мы измеряем, насколько хорошо разброс набора данных по оси абсцисс. Мы просто вычисляем среднее значение квадрата расстояния x-компоненты от ориджина. У нас есть ((-1) ² + ⁰² + ¹²) / 3 = 2/3. Подобно y-компоненту, мы имеем ((-2) ² + ⁰² + ²²) / 3 = 8/3. Таким образом, степень разброса данных по оси x составляет 2/3. Для оси Y - 8/3. Разброс по оси ординат больше, чем по оси абсцисс.

Как показано на рисунке 2 ниже, зеленая, пурпурная и красная точки - это наши данные. Понятно, что ось Y больше. Фактически, способ измерения разброса по оси в статистике называется дисперсией.

Определение дисперсии показано на рисунке 3.

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

Сейчас. Наш набор данных имеет дисперсию 2/3 по оси x и 8/3 по оси y. Таким образом, общая дисперсия составляет 10/3. Обратите внимание, что общая дисперсия всегда должна быть одинаковой, независимо от того, какую ортогональную координату мы выберем для использования.

Нахождение главных осей

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

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

В нашем примере, как на рисунке 2, визуально ясно, что наш набор данных y = 2x. А Арктан (2/1) = 63,4 градуса. (Как правило, вы не можете визуально обнаружить ПК1. Мы поговорим о том, как вы найдете эти оси позже.) Это означает, что наша новая ось должна поворачиваться по оси x на 63,4 градуса против часовой стрелки, как показано на рисунке 4.

Итак, каковы расхождения наших данных по оси PC1? Это среднее значение квадрата расстояния от исходной точки до точки данных на оси ПК1. То есть ((-1) ² + (- 2) ² + ⁰² + ⁰² + ¹² + ²²) / 3 = 10/3. Это больше, чем 8/3 и 2/3. И мы не получим больше 10/3, если попытаемся повернуть ось дальше. Почему? Потому что общая дисперсия составляет 10/3. Это также означает, что одна ось может представлять 2D-данные со 100% и 0% потерями.

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

Дисперсия наших данных по оси PC2 равна 0. Это просто потому, что наш набор данных слишком идеален, и все три точки лежат на одной линии. В реальной жизни данные должны содержать некоторый шум. Он должен быть больше похож на рисунок 1.

Таким образом, мы можем изменить координату для представления наших данных с (-1, –2), (0,0), (1,2) на (-5, 0), (0,0), (5,0). Поскольку PC1 представляет собой всю дисперсию, а PC2 представляет собой нулевую дисперсию, мы можем отбросить PC2. Итак, у нас есть (-5), (0), (5).

Нахождение главных осей в целом.

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

Отбрасывание главных осей

Когда ваши данные имеют небольшой шум, вы можете обнаружить, что общая дисперсия составляет 200. У ПК1 есть дисперсия 180, а у ПК2 - 20. Вам решать, считать 10% существенными или нет. В большинстве случаев вы не хотите терять информацию, если ваш компьютер может позволить себе вычисления для дальнейшей обработки.

Резюме

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

Я не показал вам, как найти главные оси с помощью линейной алгебры. В нашем примере данные настолько наивны, что вы можете просто визуально увидеть ПК1 и ПК2. Во второй части я покажу вам, как найти ПК1 и ПК2 с помощью линейной алгебры. Это быстро и точно.

Быть в курсе; Я скоро обновлю Часть 2