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

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

Как мы уже говорили ранее, PCA — это метод уменьшения размерности, поэтому сначала рассмотрим, как уменьшить размерность.

Но зачем нам уменьшать размеры?

PCA пытается снять проклятие в любом проекте машинного обучения, то есть OVERFITTING. Переобучение — это проблема, возникающая, когда модель слишком точна в обучающих данных, т. Е. Модель идеально соответствует всем точкам в обучающем наборе данных. Уменьшая это переоснащение, мы генерируем основные компоненты.

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

Здесь, на изображении ниже, я построил модель с наилучшей подгонкой (переоснащением) с точками данных с учетом двух атрибутов X и Y. Мы будем генерировать основные компоненты, просматривая модель с разных сторон.

PC1 — первый основной компонент (создан из представления 1)

PC2 — второй основной компонент (созданный из представления 2)

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

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

Теперь, после нахождения главных компонентов, мы найдем Ковариационную матрицу. Этот шаг направлен на то, чтобы понять, как переменные набора входных данных отличаются от среднего относительно друг друга, или, другими словами, увидеть, есть ли между ними какая-либо связь. Потому что иногда переменные сильно коррелированы таким образом, что содержат избыточную информацию. Итак, чтобы идентифицировать эти корреляции, мы вычисляем ковариационную матрицу. Для 2 атрибутов генерируется матрица 2x2, а для 3 — 3x3.

О чем говорят нам значения ковариационной матрицы?

Важен знак ковариации:

  • если положительно, то: две переменные увеличиваются или уменьшаются вместе (коррелируют)
  • если отрицательно, то: одно увеличивается, когда другое уменьшается (обратная корреляция)

Следующий шаг заключается в вычислении СОБСТВЕННЫХ ВЕКТОРОВ и СОБСТВЕННЫХ ЗНАЧЕНИЙ МАТРИЦЫ КОВАРИАЦИИ для определения ГЛАВНЫХ КОМПОНЕНТОВ.

Собственные векторы и собственные значения — это понятия линейной алгебры, которые нам нужно вычислить из ковариационной матрицы, чтобы определить главные компоненты данных. Лемм объяснить проще всего с помощью изображения ниже:

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

Затем мы снова сохранили оба этих значения (лямбда1, лямбда2) в ковариационной матрице вместо лямбда и нашли собственные векторы X1, Y1 и X2, Y2. Эти собственные векторы на самом деле являются основными компонентами. Но каков их приоритет?

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

Реализация анализа основных компонентов в Python

#Implementation of PCA is very easy in python. Implementation is done before training the model to reduce the dimensionality of the training and testing dataset.
# Applying PCA function on training
# and testing set of X component
# Note: Applying dataset to StandarScaler() is must for PCA.
from sklearn.decomposition import PCA
pca = PCA(n_components = 2)
X_train = pca.fit_transform(X_train)
X_test = pca.transform(X_test)
explained_variance = pca.explained_variance_ratio_

Проблема, которая может возникнуть при использовании PCA

Потеря информации:

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

Независимые переменные становятся менее интерпретируемыми:

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

Краткое содержание

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