Уменьшите размер ваших данных без потери сигнала от них

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

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

В общем, PCA это:

  • Уменьшение линейной размерности с использованием разложения данных по сингулярным значениям для проецирования их в пространство с меньшей размерностью.
  • Неконтролируемое машинное обучение
  • Преобразование ваших данных и попытки выяснить, какие функции объясняют наибольшую изменчивость ваших данных. Например:

Визуализация PCA

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

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

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

Мы также можем указать, сколько компонентов мы хотим сохранить при создании объекта PCA.

Ясно, что с помощью этих двух компонентов мы можем легко разделить эти два класса.

Интерпретация компонентов

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

Анализ главных компонентов широко используется для исследовательского анализа данных (EDA), но он имеет множество других применений, таких как:

  • Сжатие данных и сохранение информации
  • Фильтрация шума
  • Извлечение признаков и разработка
Fitting 5 folds for each of 126 candidates, totalling 630 fits

[Parallel(n_jobs=1)]: Using backend SequentialBackend with 1 concurrent workers.

Best params: {'C': 0.5, 'gamma': 0.1, 'kernel': 'rbf'}
Train Result:
================================================
Accuracy Score: 95.98%
_______________________________________________
CLASSIFICATION REPORT:
                  0.0         1.0  accuracy   macro avg  weighted avg
precision    0.992593    0.942966  0.959799    0.967779      0.961545
recall       0.899329    0.995984  0.959799    0.947656      0.959799
f1-score     0.943662    0.968750  0.959799    0.956206      0.959358
support    149.000000  249.000000  0.959799  398.000000    398.000000
_______________________________________________
Confusion Matrix: 
 [[134  15]
 [  1 248]]

Test Result:
================================================
Accuracy Score: 93.57%
_______________________________________________
CLASSIFICATION REPORT:
                 0.0         1.0  accuracy   macro avg  weighted avg
precision   0.948276    0.929204  0.935673    0.938740      0.936230
recall      0.873016    0.972222  0.935673    0.922619      0.935673
f1-score    0.909091    0.950226  0.935673    0.929659      0.935071
support    63.000000  108.000000  0.935673  171.000000    171.000000
_______________________________________________
Confusion Matrix: 
 [[ 55   8]
 [  3 105]]

[Parallel(n_jobs=1)]: Done 630 out of 630 | elapsed:    2.5s finished

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

В этой статье мы открыли алгоритм анализа основных компонентов. Вы узнали о:

  • Анализ главных компонентов и как его использовать для уменьшения сложности проблемы.
  • Как рассчитать анализ основных компонентов для повторного использования на дополнительных данных в Scikit-Learn.

Использованная литература: