Как работает метод главных компонент (PCA) — на простом примере
Как работает метод главных компонент (PCA) — на простом примере
Обрабатывать сотни, а то и тысячи характеристик трудно, а наглядно нарисовать их почти невозможно. Рассказываем о методе, который упрощает жизнь и исследователю, и читателю.
Главные компоненты (Principal Components) — это ключевые элементы метода PCA (Principal Component Analysis), которые позволяют преобразовывать исходные данные в более удобную для анализа форму. Они представляют собой новые переменные, которые получаются в результате линейного преобразования исходных данных. Главные компоненты устроены так, чтобы максимально упростить анализ и выделить наиболее важные закономерности.
В чём же смысл главных компонент? Рассмотрим, к примеру, многомерный набор данных, например характеристики разных сортов винограда: кислотность, содержание сахара, цвет и т. д. Эти характеристики могут быть сильно взаимосвязаны, что затрудняет анализ. PCA позволяет найти те направления в данных, где находится основная часть их вариативности. Эти направления и называются главными компонентами.
Первая главная компонента — это направление, вдоль которого разброс данных максимален. Она содержит максимальную информацию о различиях в данных. Вторая главная компонента перпендикулярна первой и содержит вторую по значимости часть вариативности, и т. д. Каждая следующая компонента объясняет всё меньшую часть общей дисперсии данных.
Важно отметить, что главные компоненты — это не реальные измерения, которые изначально есть в данных. Это искусственно созданные оси, которые помогают представить данные более компактно и осмысленно. Например, если было десять исходных характеристик, то после применения PCA может оказаться, что всего двух или трёх главных компонент достаточно, чтобы объяснить большую часть вариативности.
Метод PCA помогает не только проводить исследования, но и наглядно демонстрировать их результаты. Но это очень малая часть математики, вокруг которой построен современный анализ данных. На курсе «Математика для анализа данных» студенты учатся математическому анализу, линейной алгебре, теории вероятностей и основам статистики, что позволяет осмысленно пользоваться многими мощными инструментами анализа данных.
В математике собственные значения и собственные векторы находят через специальное уравнение: 𝐴 • 𝑣 = λ • 𝑣, где 𝐴 — исходная матрица, 𝑣 — собственный вектор, а λ — собственное значение. Решение этого уравнения даёт нам те направления, которые максимально важны для анализа данных, и величины, показывающие значимость каждого направления.
Для метода PCA собственные векторы определяют новые оси, вдоль которых данные будут разложены. Эти оси упрощают анализ, так как на них можно сосредоточиться на главных компонентах, то есть на наиболее значимых характеристиках данных. А собственные значения помогают понять, какие из осей важнее других: чем больше значение, тем более значимая информация заключена в соответствующем направлении.
Проекция данных на главные компоненты — это ключевой этап метода главных компонент (PCA), который позволяет преобразовать исходные данные в новую систему координат. Эта система основана на главных компонентах, определяемых их значимостью для анализа данных.
Рассмотрим многомерное облако точек, которое представляет собой данные. Каждая точка соответствует одному наблюдению, а каждое измерение — одной из переменных. Главные компоненты задают оси в этом пространстве, вдоль которых данные варьируются наиболее существенно. Проекция — это процесс переноса исходных точек на эти новые оси.
Проецируя данные, мы переводим их из исходной системы координат (где переменные могут быть коррелированы) в новую, где каждая компонента независима от других. Это помогает не только снизить размерность данных, но и сделать их анализ более интерпретируемым.
Применение метода главных компонент (PCA) для анализа данных стало популярным благодаря его способности выявлять ключевые закономерности и структурировать сложные наборы данных. В современных исследованиях и бизнес-процессах массивы данных становятся всё более многомерными, а PCA позволяет упростить их интерпретацию.
Главная цель PCA в анализе данных — это выделение главных направлений вариативности. Это значит, что мы можем понять, какие переменные или комбинации переменных вносят наибольший вклад в различия между наблюдениями. Такой подход позволяет сделать следующее:
В аналитических задачах PCA выполняет несколько ключевых функций:
Пример: рассмотрим исследование потребительских предпочтений. Исходный набор данных может содержать десятки вопросов анкеты, но их проекция на две-три главные компоненты покажет, как потребители делятся на группы по схожести предпочтений.
Снижение размерности — это процесс преобразования многомерных данных в пространство меньшей размерности. Он позволяет сократить количество переменных, сохранив те, которые вносят основной вклад в вариативность данных. Этот подход облегчает анализ, ускоряет вычисления и улучшает работу алгоритмов машинного обучения.
Современные данные часто страдают от так называемого «проклятия размерности». Чем больше переменных в наборе данных, тем сложнее:
● выявлять закономерности;
● исключать шумовые или нерелевантные переменные;
● обучать модели без риска переобучения.
PCA решает эту проблему, находя новые переменные — главные компоненты, которые представляют собой линейные комбинации исходных переменных. Используя только первые несколько компонент, можно значительно упростить анализ.
Как это работает?
1. Исходные данные преобразуются с учётом их центра тяжести, чтобы среднее значение всех переменных стало нулевым.
2. Вычисляются собственные векторы и собственные значения матрицы ковариации данных. Эти векторы указывают направления, вдоль которых данные варьируются наиболее сильно.
3. Данные проецируются на несколько первых главных компонент. Выбор количества компонент определяется долей объяснённой дисперсии, которую они покрывают. Например, если первые три компоненты объясняют 90% дисперсии, их достаточно для анализа.
Снижение размерности данных с помощью PCA помогает не только визуализировать сложные наборы данных, но и сделать их более управляемыми и доступными для анализа.
Визуализация данных является одной из наиболее ярких и полезных сторон применения метода главных компонент (PCA). Этот процесс позволяет свести многомерные данные к двум или трём измерениям, что делает их подходящими для графического представления. Такие визуализации помогают лучше понять структуру данных, выявить скрытые закономерности и увидеть группировку объектов.
Зачем нужна визуализация данных с использованием PCA?
Как происходит визуализация?
Пример применения: рассмотрим данные об успеваемости студентов. Исходный набор включает множество переменных: оценки по разным предметам, время подготовки, посещаемость и другие факторы. После применения PCA можно создать график, где каждая точка — это студент, а положение точек показывает их академическую успеваемость и схожесть друг с другом. Этот подход помогает выделить группы успешных и отстающих студентов.
Преимущества визуализации с PCA:
1. Подготовка данных.
○ Все переменные должны быть числовыми. Если в наборе данных присутствуют категориальные переменные, их нужно закодировать.
○ Данные стоит масштабировать так, чтобы каждая переменная имела нулевое среднее и единичную дисперсию. Это позволяет избежать доминирования переменных с большими значениями.
2. Вычисление матрицы ковариации.
○ Нужно построить матрицу ковариации, которая отражает степень зависимости между различными переменными. Элементы этой матрицы показывают, как изменения одной переменной связаны с изменениями другой.
3. Нахождение собственных векторов и собственных значений.
○ Должны быть найдены собственные значения и собственные векторы матрицы ковариации. Собственные значения показывают, сколько вариативности объясняет каждая главная компонента, а собственные векторы определяют направления этих компонент.
4. Сортировка компонент.
○ Собственные значения сортируются в порядке убывания. Это позволяет выделить главные компоненты, которые объясняют наибольшую часть дисперсии данных.
5. Формирование новой базы координат.
○ Матрица преобразования строится из собственных векторов, соответствующих выбранным главным компонентам. Эти векторы образуют новую систему координат.
6. Проекция данных.
○ Исходные данные умножаются на матрицу собственных векторов. Результатом будет набор данных, представленный в пространстве главных компонент.
Ключевые особенности алгоритма
● Объяснённая дисперсия: при выборе количества главных компонент ориентируются на долю объяснённой дисперсии. Обычно используют те компоненты, которые в совокупности объясняют 80–95% вариативности.
● Простота вычислений: алгоритм требует выполнения стандартных операций линейной алгебры, что делает его легко реализуемым на практике.
Метод главных компонент (PCA) легко реализуется на Python благодаря мощным библиотекам для анализа данных, таким как NumPy, pandas и scikit-learn. Ниже представлена пошаговая реализация PCA на примере анализа набора данных о характеристиках цветков ириса из библиотеки scikit-learn.
Шаг 1. Импорт необходимых библиотек.
Шаг 2. Загрузка данных.
Используем набор данных iris, который включает характеристики цветков ириса. Он доступен в библиотеке scikit-learn:
Шаг 3. Стандартизация данных.
Для корректной работы PCA необходимо масштабировать данные, чтобы каждая переменная имела одинаковый вес:
Шаг 4. Применение PCA.
Теперь мы применим PCA для снижения размерности данных до двух компонент:
Шаг 5. Визуализация результатов.
Для наглядности создадим график, отображающий данные в пространстве главных компонент:
Результат работы программы
Интерпретация результатов
На графике можно увидеть, как данные о цветках разделяются на группы в пространстве двух главных компонент. Эти группы соответствуют трём видам ирисов. Главные компоненты не только позволяют визуализировать данные, но и сохраняют большую часть их вариативности, несмотря на снижение размерности.
Читать также: