Намалете размера на вашите данни, без да губите сигнал от тях
Анализ на главните компоненти
Анализът на главните компоненти (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“