Упрощение и понимание данных с помощью анализа главных компонентов

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

В качестве примера мы будем использовать набор данных UCI ML по раку молочной железы в Висконсине (диагностический), доступный по адресу https://goo.gl/U2Uwz2. В то время как авторы оригинальной статьи сосредоточились на разработке дерева решений с помощью линейного программирования, я покажу, как современные библиотеки PCA значительно упрощают понимание пространства переменных. Поэтому цель статьи — не разработать еще один классификатор машинного обучения, а показать, как использовать PCA для лучшего понимания пространства признаков. Кроме того, этот метод можно обобщить на любой пример из реальной жизни, где несколько коррелирующих переменных делают невозможным стандартный анализ диаграммы рассеяния.

Что такое анализ главных компонентов

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

Например, если мы представим точки данных, распределенные по двумерному эллипсу, первый главный компонент будет располагаться вдоль главной оси эллипса. Следовательно, точки, спроецированные на эту линию, приведут к компонентам с максимально возможной дисперсией. Таким образом, эта проекция уже снижает сложность с двух до одного измерения, сохраняя при этом большую часть исходной информации. Другими словами, PCA помогает упростить данные (уменьшив их размерность) при минимально возможной потере информации об исходных данных. Магия.

Действительно, PCA прекрасно воплощает в себе часто цитируемый афоризм: «Все должно быть сделано как можно проще, но не проще», часто приписываемый А. Эйнштейну (хотя и без прямых доказательств в его трудах).

Используя предыдущий пример, теперь мы можем визуализировать второй главный компонент как малую ось эллипса, ортогональную первой, которая описывает дисперсию данных вдоль этой независимой оси. И вообще говоря, если функции p описывают наши данные в p-мерном пространстве, будет p ортогональная ось, вдоль которой мы могли бы полностью представить наши данные.

Использование анализа основных компонентов для упрощения наших данных

Набор данных включает 569 помеченных экземпляров с 30 числовыми атрибутами. Метки: WDBC-Злокачественный и WDBC-Доброкачественный, в то время как особенности исходят из оцифрованного изображения аспирата тонкой иглой молочной железы (FNA).

Во время исследовательского анализа данных мы обычно изучаем двумерные диаграммы рассеяния различных переменных, что для признаков p означает диаграммы рассеяния p(p-1)/2. К сожалению, при значительном количестве переменных, как в нашем случае, такой подход нереалистичен и бессмыслен. На самом деле, для 30 функций приходится 435 диаграмм рассеяния: слишком много, чтобы их можно было проверить. Но даже если мы попытаемся проанализировать их, каждый из них будет содержать лишь крошечную часть информации, присутствующей в наборе данных.

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

Подход на практике

Хотя мы могли бы легко справиться с линейной алгеброй PCA с нуля в Python, мы будем использовать библиотеку Scikit-Learn, которая значительно упрощает рабочий процесс.

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

Сначала мы должны спросить, сколько информации сохраняется в этих двух измерениях вместо 30 измерений исходного пространства признаков?
Оказывается, PC1, первая главная ось, объясняет 44% дисперсии, тогда как PC2, вторая ось представляет 19% дисперсии.
Таким образом, наш PCA значительно упрощает анализ, сохраняя при этом более 63% исходной информации, что превосходно.

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

Исследование пространства признаков

Изучая веса, присвоенные главной оси, также называемые векторами нагрузки, мы можем лучше всего увидеть, какие переменные коррелируют или более релевантны.
Чтобы лучше прояснить, PC1, первый вектор нагрузки, представляет собой линейную комбинацию функций с самая большая дисперсия. В то же время ПК2 является осью с максимальной дисперсией среди всех линейных комбинаций, некоррелированных с ПК1. Используя тепловую карту, мы можем увидеть, какие функции являются относительно значимыми в каждой из двух ортогональных осей.

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

Такие переменные, как средний радиус, средний периметр, средняя площадь, наихудший радиус, наихудший периметр и наихудшая площадь, расположены близко друг к другу, демонстрируя четкую и ожидаемую корреляцию (точки 0, 2, 3, 20, 22, 23).

Интересно отметить, что эти переменные далеки и поэтому в значительной степени не коррелируют с переменными, связанными с гладкостью и симметрией (28, 24, 8, 4). Эксперт-онколог, вероятно, нашел бы дополнительные сведения об этих отношениях между различными функциями. Вообще говоря, как я исследовал в своей статье Шесть важнейших правил проектирования организаций Data Science, специалисты по данным никогда не должны работать в отрыве от экспертов по контенту, что на сегодняшний день является самой распространенной ошибкой во многих организациях.

Должны ли мы добавить дополнительные измерения в наш PCA?

Запустив PCA с n_components = 30, мы можем получить массив объясненных вкладов дисперсии по каждому дополнительному измерению. Накопленные суммы этих вкладов говорят о том, как каждое измерение добавляется к сохраненной общей информации. Красная линия показывает выбор двух осей, которые мы использовали в этом анализе, в то время как кривая сглаживается к одной, что означает, что мы сохраняем полную информацию с количеством осей, равным количеству исходных признаков.

Мы видели, как два измерения могут хорошо разделять группы доброкачественных и злокачественных опухолей, поэтому в этом случае многие модели контролируемой классификации, такие как машина опорных векторов (SVM), могут хорошо работать после PCA с n_components = 2.

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

Выводы

Мы увидели, что PCA — отличный инструмент для упрощения наборов данных со многими функциями. Например, при исследовательском анализе данных с множеством задействованных переменных иногда невозможно и бесполезно анализировать десятки диаграмм рассеяния. В то же время PCA значительно упрощает задачу приведения данных к нужным размерностям. Общая идея, лежащая в основе этого метода, заключается в том, что не все функции будут содержать важную информацию, особенно когда некоторые функции сильно коррелированы. Проверка весов векторов загрузки проливает яркий свет на эти корреляции и потенциально дает дополнительную информацию для понимания экспертами по контенту. Как только данные понятны, мы можем использовать PCA как очень эффективный компонент конвейера машинного обучения в сочетании с большинством контролируемых алгоритмов классификации.