Уменьшите размер ваших данных без потери сигнала от них
Анализ главных компонентов
Анализ главных компонентов (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.