оставшуюся после первой, и так далее. Таким образом, первые несколько главных компонент обычно содержат большинство информации о данных, что позволяет отказаться от менее значимых компонент.
PCA – это линейный метод, который ищет новые оси координат, вдоль которых данные максимально разнесены. Эти оси называются основными компонентами. Процесс можно представить следующим образом:
1. Нахождение главных компонент: с помощью математических методов (например, сингулярного разложения матрицы) PCA находит новые оси, которые наиболее информативны для данных.
2. Проекция данных на новые оси: исходные данные проецируются на найденные главные компоненты, что приводит к новому представлению данных в пространстве меньшей размерности.
3. Выбор количества компонент: можно выбрать количество компонент, которые сохраняют наибольшее количество информации, и отбросить менее значимые компоненты.
Зачем нужно снижать размерность?
1. Ускорение обучения: с уменьшением числа признаков модели обучаются быстрее, так как уменьшается количество вычислений.
2. Предотвращение переобучения: уменьшая количество признаков, можно снизить риск переобучения модели, так как она не будет "подгоняться" под шум в данных.
3. Визуализация данных: для многомерных данных снижение размерности позволяет визуализировать данные, что помогает понять их структуру.
4. Уменьшение коллинеарности: если признаки в данных сильно коррелируют друг с другом, это может приводить к проблемам в работе моделей. PCA помогает уменьшить коллинеарность, заменяя связанные признаки на независимые компоненты.
Как работает PCA?
1. Центрирование данных: перед применением PCA данные нужно центрировать, т.е. вычесть среднее значение каждого признака из всех его значений. Это делается для того, чтобы компоненты были вычислены относительно нулевой средней.
2. Ковариационная матрица: затем вычисляется ковариационная матрица для центрированных данных. Ковариация показывает, как два признака изменяются относительно друг друга. Чем выше ковариация, тем сильнее взаимосвязь между признаками.
3. Сингулярное разложение или собственные значения и собственные векторы: используя сингулярное разложение матрицы или вычисление собственных значений и собственных векторов ковариационной матрицы, мы находим главные компоненты. Эти компоненты соответствуют векторам, которые указывают направления максимальной дисперсии данных.
4. Проекция данных: теперь можно проецировать исходные данные на найденные компоненты. Это преобразует данные в новое пространство меньшей размерности.
Пример использования PCA
Допустим, у нас есть набор данных с множеством признаков, и мы хотим уменьшить их количество, чтобы улучшить производительность модели. Рассмотрим следующий пример с использованием библиотеки scikit-learn на Python.
Пример: применение PCA на данных о цветах ирисов
В этом примере мы будем работать с известным