Исследование кумулятивного коэффициента объясненной дисперсии

Анализ основных компонентов
Анализ основных компонентов (PCA) — это подход, используемый для уменьшения размерности, который улучшает визуализацию данных, сохраняя при этом максимум информации исходных данных. Потеря информации исследуется по расхождению между исходными данными и сжатыми (прогнозируемыми) данными, цель которого состоит в том, чтобы максимизировать расхождение.
В машинном обучении PCA влияет на скорость алгоритма обучения, который уменьшает набор функций высокой размерности (например, 10 000) до более низкого (например, 1000). Таким образом, PCA позволяет алгоритму работать быстрее.
Алгоритм
PCA нуждается в этапе предварительной обработки перед самим алгоритмом. Предварительная обработка направлена на нормализацию каждого признака данных, где каждый признак в наборе данных будет иметь нулевое среднее значение и единичную дисперсию. Код показан ниже:
Чтобы преобразовать данные из n-мерных в k-мерные (эквивалентные количеству компонентов), сначала вычисляется ковариационная матрица, обозначаемая ∑, следующим образом:

Где X — n-мерные данные, m — количество примеров, а ∑ — ковариационная матрица размера n x n.
Затем вычисляются собственные векторы ковариационной матрицы с помощью разложения по сингулярным значениям или SVD, в результате чего мы получаем унитарную матрицу U и вектор с сингулярными значениями S. Выбирая первые k столбцов матрицы U, мы получаем новую матрицу Ur, которая равна используется для получения сокращенных данных Z k-размеров, как показано в приведенном ниже уравнении:

Код Python для выполнения PCA показан ниже:
Исходные данные X и количество компонентов k являются входными данными функции, а прогнозируемые данные Z и вектор сингулярных значений являются выходными данными функции.
Выбор количества главных компонентов
Ядром PCA является выбор количества компонентов k, которые исследуются с помощью кумулятивного объясненного коэффициента дисперсии, и оценивая его, мы можем сохранить информацию исходных данных. Коэффициент дисперсии получается вектором сингулярных значений S, как показано в уравнении ниже:

Где k — количество компонентов (k-размеров), а n — количество признаков. Выбор k осуществляется путем выбора наименьших значений k, коэффициент дисперсии которых выше определенного порога, например 99%. Код для расчета кумулятивного объясненного коэффициента дисперсии показан ниже:
Входными параметрами функции являются вектор сингулярных значений S и диапазон исследуемых компонентов k. Результатом является вектор кумулятивных объясненных коэффициентов дисперсии.
Набор данных Iris
Набор данных радужной оболочки используется для анализа выбора количества компонентов в PCA. Краткое описание набора данных и его особенностей показано в предыдущем посте блога Дискриминант Фишера.
Исследуя набор данных по радужной оболочке для значений k в диапазоне 1–3, мы получаем график количества компонентов по кумулятивному объясненному коэффициенту дисперсии ниже:

Замечено, что k = 3 является наименьшим значением k с кумулятивным объясненным коэффициентом дисперсии 0,9948, что выше порогового значения 0,99 (красная пунктирная линия). Итак, k = 3 — это небольшое значение, которое максимизирует расхождение между исходными данными и прогнозируемыми данными. На рисунке ниже показан трехмерный график рассеяния проецируемых данных из данных радужной оболочки с k = 3.

Набор данных о питательных веществах пиццы
В настоящее время исследуется анализ питательных веществ в наборе данных пиццы. Набор данных доступен на Kaggle и содержит 300 примеров и 7 функций, распределенных по 10 классам. Некоторыми особенностями являются количество воды и белка на 100 граммов в образце.
Проверяя питательные вещества набора данных пиццы для значений k в диапазоне 1–6, мы получаем график количества компонентов по кумулятивному объясненному коэффициенту дисперсии ниже:

При проверке графика выше видно, что k = 4 является наименьшим значением k с кумулятивным объясненным коэффициентом дисперсии 0,9960, что выше порогового значения 0,99 (красная пунктирная линия). Таким образом, k = 4 — это малое значение, которое максимизирует дисперсию между исходными данными и прогнозируемыми данными. На рисунке ниже показан график функции 1 и функции 2 прогнозируемых данных о питательных веществах данных пиццы с k = 4.

Заключение
Таким образом, оценка кумулятивного коэффициента объясненной дисперсии является надежным методом выбора количества компонентов на PCA, который выполняет уменьшение размерности, максимизируя дисперсию между исходными данными и прогнозируемыми данными.
Полный код доступен на Github и Colab. Подпишитесь на блог, если пост полезен для вас.
Если вас интересует уменьшение размерности с помощью линейного дискриминанта Фишера, я написал об этом в блоге. Если вы хотите это проверить: