Намалете размера на вашите данни, без да губите сигнал от тях

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

Анализът на главните компоненти (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.

Препратки:

  • „Как да изчислим анализ на основните компоненти (PCA) от нулата в Python“