Оглавление:

  1. Пример, где нам нужен PCA
  2. Как PCA помогает в конвейере машинного обучения.
  3. Как работает PCA — Геометрическая интуиция
  4. Математика PCA
  5. Заключение
  6. Вопрос: Есть ли методы лучше, чем PCA?

Предварительные условия

  1. Собственные значения и собственные векторы
  2. Линейная алгебра

#1. Пример, когда нам нужен PCA

Начнем с примера.

«Набор данных D = набор пары xi и yi в диапазоне от 1 до n, так что значение xi принадлежит действительным числам, а yi принадлежит 0 или 1».

Согласно этому набору данных, это проблема бинарной классификации, где xi относится к функциям «d». И учитывая ввод x, нам нужно классифицировать его как 0 или 1. Одним из первых шагов в конвейере машинного обучения является исследовательский анализ данных (EDA), где мы пытаемся понять данные. Мы пытаемся ответить на такие вопросы, как:
В1: Сколько признаков коррелирует?
В2: Сколько признаков хорошо разделяет данные?
В3: Сколько признаков важно?

Основная идея PCA заключается в уменьшении размеров с d до d’, где d’ ‹ d. Путем устранения функций, которые не добавляют много информации.

№ 2. Как PCA помогает конвейеру машинного обучения.

Допустим, есть 768 функций (d = 768), что соответствует 100%. Теперь приходит парень из PCA и говорит нам: «Эй, мужик! используя только 500 функций, вы все равно можете иметь 95% информации о данных.
А мы удивляемся вау. Почему бы просто не использовать 500 функций, если 268 функций добавляют только 5% информации. Теперь возникает один вопрос. Какие все 500 функций верны?
Вот где PCA вступает в игру в конвейере машинного обучения.

№ 3. Как работает PCA — геометрическая интуиция

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

Давайте разберемся с этим из 2D в 1D. Как только мы это поймем, то же самое можно расширить от nD до n’D, где n’ ‹ n.

Пример 1: Допустим, у нас есть матрица X с n строками и 2 столбцами (f1 и f2). Мы хотим исключить эту функцию, которая не добавляет много информации о данных.

Чтобы выяснить это, давайте построим данные в 2D-плоскости и предположим, что они выглядят так, как показано слева на изображении ниже. Горизонтальная ось — f1, вертикальная ось — f2.

Примечание:
1. Нам нужно исключить одну ненужную ось (или функцию). Если мы это сделаем, то все точки будут спроецированы на ось, которая не была удалена.
2. Больше разворота, больше информации о данных.

Наблюдения:
1. Если мы спроецируем все точки на f1, разброс будет минимальным — это означает, что это дает очень мало информации о данных.
2. Если спроецировать все точки на f2, то разброс максимальный — это дает максимальную информацию о данных.

Поэтому мы исключим функцию f1, а так как все точки проецируются на f2 — точки были изменены, скажем, с xi на x’i. А так как все точки были изменены из-за проекции, то, скажем, f2' теперь представляет эти точки. В матричной форме это можно увидеть ниже:

Пример 2. Возьмем еще один пример с другими графиками.

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

Наблюдения:
1. Как видно, f1' - это направление, в котором разброс максимален.
2. f1' можно использовать в качестве входных данных для обучения модели вместо f1 и f2.

Вывод:
1. Найдите f1' и f2' — которые имеют максимальный разброс.
2. Так как f1' ‹‹ f2' — отбросить f1'.
3. Спроецировать xi на f1' — получается 2D в 1D.

Цель: Мы хотим найти такое направление (например, f1'), чтобы дисперсия (разброс) xi, спроецированная на f1', была максимальной.

Вопрос. Сколько информации мы теряем, делая это, потому что удаление функции просто означает, что мы теряем информацию. Хотя мы теряем меньше всего, но сколько? Я отвечу на этот вопрос позже в этом блоге.

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

№ 4. Математика PCA

Поэтому перед любыми операциями над входной матрицей мы сначала стандартизируем данные так, чтобы среднее значение (μ) равнялось 0, а стандартное отклонение (σ) равнялось 1.

Теперь, если мы возьмем дисперсию с обеих сторон, получится следующее:

Теперь цель: найти значение «u», для которого дисперсия или разброс максимальны. Это поможет сохранить больше информации.

Используя формулу дисперсии: мы получаем следующее

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

С этим выражением нам нужен максимальный разброс, который является проблемой оптимизации, т.е.:

Это выражение можно прочитать так: "Найдите значение u такое, чтобы это выражение имело максимальное значение, где u — единичный вектор".

Это основная математическая идея или проблема оптимизации, которую PCA решает для получения u.

Примечание. Если мы сможем найти значение u, для которого значение этого выражения является максимальным, то мы сможем определить направление, в котором разброс максимален. Чтобы получить это значение u, в игру вступают собственные значения и собственные векторы. Посмотрим как!

# Геометрическая интуиция собственных значений (λ) и собственных векторов (v)

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

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

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

Итак, давайте рассмотрим пример, как описано ниже:

Здесь Допустим, есть матрица X, стандартизированные столбцы, и мы получаем собственные значения и собственные векторы, используя функцию Python. Таким образом, свойства собственного вектора таковы, что
#1 Самый левый вектор имеет максимальное распространение.
#2 Самый правый вектор имеет минимальный разброс.
#3 Это в порядке убывания спреда.

Поскольку v1 имеет максимальный разброс, мы можем сказать u=v1 для максимального разброса или дисперсии. верно ??

Это было о собственных векторах, мы поняли, но как насчет собственных значений. Давайте посмотрим на следующее изображение:

Наблюдения:
1. Первое изображение: V1 имеет максимальный разброс, поэтому λ1 = 3 (скажем, ). V2 не имеет спреда, поэтому λ2=0.
2. Второе изображение:
V2 имеет некоторый разброс =› λ2=1 и λ1=3.
3. Третье изображение:
здесь мы получаем немного больший разброс, следовательно, λ2=2.
4. Четвертое изображение:
Поскольку и V1, и V2 имеют одинаковые следовательно, распространение, λ1=3 & λ2=3.

Вывод: чем больше разброс по V, тем больше значение соответствующего λ.

Теперь попробуем ответить, сколько информации удерживают разные лямбда-выражения (λ).
На третьем изображении у нас есть следующие наблюдения:

Наблюдения:
1. λ1 сохраняет 60 % данных.
2. λ2 сохраняет 40 % данных.

Общая форма будет выглядеть следующим образом:

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

И если мы построим график λ1,λ2,λ3…λd’. мы можем ответить, сколько функций можно использовать, чтобы получить 95 % информации.

ПРИМЕЧАНИЕ:
1. Ось X — это основные компоненты или преобразованные функции.
2. Ось Y - % информации.

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

№ 5. Заключение

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

Вопрос. Есть ли какие-либо методы лучше, чем PCA?
Ответ:Да, многомерное уплотнение, картирование Саммона, методы на основе графов, t-SNE и т. д.

Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.