A mesura que augmenta el nombre de característiques o dimensions d'un conjunt de dades, la quantitat de dades necessàries per obtenir un resultat estadísticament significatiu augmenta de manera exponencial. Això pot provocar problemes com ara l'ajustament excessiu, l'augment del temps de càlcul i la reducció de la precisió dels models d'aprenentatge automàtic, això es coneix com la maledicció dels problemes de dimensionalitat que sorgeixen mentre es treballa amb dades d'alta dimensió.
A mesura que augmenta el nombre de dimensions, augmenta exponencialment el nombre de combinacions possibles de característiques, la qual cosa dificulta computacionalment l'obtenció d'una mostra representativa de les dades i es fa car realitzar tasques com l'agrupació o la classificació perquè esdevé. A més, alguns aprenentatge automàtic els algorismes poden ser sensibles al nombre de dimensions, i requereixen més dades per aconseguir el mateix nivell de precisió que les dades de dimensions inferiors.
quan acaba q1
Per abordar el maledicció de la dimensionalitat , Enginyeria de característiques s'utilitzen tècniques que inclouen la selecció de característiques i l'extracció de característiques. Reducció de la dimensionalitat és un tipus de tècnica d'extracció de característiques que té com a objectiu reduir el nombre de característiques d'entrada conservant la màxima informació original possible.
En aquest article, parlarem d'una de les tècniques de reducció de dimensionalitat més populars, és a dir, l'anàlisi de components principals (PCA).
Què és l'anàlisi de components principals (PCA)?
Anàlisi de components principals (PCA) va ser introduïda pel matemàtic Karl Pearson el 1901 . Funciona amb la condició que, mentre que les dades d'un espai dimensional superior es mapegen amb dades d'un espai de dimensió inferior, la variància de les dades a l'espai dimensional inferior hauria de ser màxima.
- Anàlisi de components principals (PCA) és un procediment estadístic que utilitza una transformació ortogonal que converteix un conjunt de variables correlacionades en un conjunt de variables no correlacionades. La PCA és l'eina més utilitzada en l'anàlisi exploratòria de dades i en l'aprenentatge automàtic per a models predictius. A més,
- L'anàlisi de components principals (PCA) és un aprenentatge no supervisat tècnica d'algorisme utilitzada per examinar les interrelacions entre un conjunt de variables. També es coneix com a anàlisi factorial general on la regressió determina una línia de millor ajust.
- L'objectiu principal de l'anàlisi de components principals (PCA) és reduir la dimensionalitat d'un conjunt de dades tot preservant els patrons o relacions més importants entre les variables sense cap coneixement previ de les variables objectiu.
L'anàlisi de components principals (PCA) s'utilitza per reduir la dimensionalitat d'un conjunt de dades trobant un nou conjunt de variables, més petit que el conjunt original de variables, conservant la major part de la informació de la mostra i útil per a la regressió i classificació de dades.
Anàlisi de components principals
- L'anàlisi de components principals (PCA) és una tècnica per a la reducció de la dimensionalitat que identifica un conjunt d'eixos ortogonals, anomenats components principals, que capturen la màxima variància de les dades. Els components principals són combinacions lineals de les variables originals del conjunt de dades i s'ordenen per ordre decreixent d'importància. La variància total capturada per tots els components principals és igual a la variància total del conjunt de dades original.
- El primer component principal captura la major variació de les dades, però el segon component principal captura el màxim desacord això és ortogonal al primer component principal, i així successivament.
- L'anàlisi de components principals es pot utilitzar per a diversos propòsits, com ara la visualització de dades, la selecció de funcions i la compressió de dades. En la visualització de dades, PCA es pot utilitzar per representar dades d'alta dimensió en dues o tres dimensions, cosa que facilita la seva interpretació. En la selecció de funcions, PCA es pot utilitzar per identificar les variables més importants d'un conjunt de dades. En la compressió de dades, PCA es pot utilitzar per reduir la mida d'un conjunt de dades sense perdre informació important.
- En l'anàlisi de components principals, s'assumeix que la informació es transporta en la variància de les característiques, és a dir, com més gran sigui la variació d'una característica, més informació contenen les característiques.
En general, PCA és una eina poderosa per a l'anàlisi de dades i pot ajudar a simplificar conjunts de dades complexos, fent-los més fàcils d'entendre i treballar.
Explicació pas a pas de PCA (Anàlisi de components principals)
Pas 1: estandardització
Primer, ho hem de fer estandarditzar el nostre conjunt de dades per garantir que cada variable tingui una mitjana de 0 i una desviació estàndard d'1.
Aquí,
-
és la mitjana de les característiques independents
-
és el desviació estàndar de característiques independents
Pas 2: Càlcul de la matriu de covariància
Covariància mesura la força de la variabilitat conjunta entre dues o més variables, indicant quant canvien entre elles. Per trobar la covariància podem utilitzar la fórmula:
El valor de la covariància pot ser positiu, negatiu o zero.
- Positiu: a mesura que augmenta x1 també augmenta x2.
- Negatiu: a mesura que augmenta x1 també disminueix x2.
- Zeros: Sense relació directa
Pas 3: calcular valors propis i vectors propis de la matriu de covariància per identificar els components principals
Sigui A una matriu quadrada nXn i X un vector diferent de zero per a la qual cosa
per a alguns valors escalars . aleshores
es coneix com el valor propi de la matriu A i X es coneix com a vector propi de la matriu A per al valor propi corresponent.
També es pot escriure com:
on sóc la matriu d'identitat de la mateixa forma que la matriu A. I les condicions anteriors només seran certes si no serà inversible (és a dir, matriu singular). Això significa,
A partir de l'equació anterior, podem trobar els valors propis lambda, i per tant es pot trobar el vector propi corresponent mitjançant l'equació .
Com funciona l'anàlisi de components principals (PCA)?
Per tant, PCA utilitza una transformació lineal que es basa en preservar la major variació de les dades utilitzant el menor nombre de dimensions. Implica els següents passos:
Python 3
import> pandas as pd> import> numpy as np> # Here we are using inbuilt dataset of scikit learn> from> sklearn.datasets> import> load_breast_cancer> # instantiating> cancer> => load_breast_cancer(as_frame> => True> )> # creating dataframe> df> => cancer.frame> # checking shape> print> (> 'Original Dataframe shape :'> ,df.shape)> # Input features> X> => df[cancer[> 'feature_names'> ]]> print> (> 'Inputs Dataframe shape :'> , X.shape)> |
>
>
Sortida :
Original Dataframe shape : (569, 31) Inputs Dataframe shape : (569, 30)>
Ara aplicarem el primer pas més que és estandarditzar les dades i per això, primer haurem de calcular la mitjana i la desviació estàndard de cada característica a l'espai de funcions.
Python 3
# Mean> X_mean> => X.mean()> # Standard deviation> X_std> => X.std()> # Standardization> Z> => (X> -> X_mean)> /> X_std> |
>
>
El covariància matrix ens ajuda a visualitzar com de forta és la dependència de dues característiques entre si a l'espai de característiques.
Python 3
# covariance> c> => Z.cov()> # Plot the covariance matrix> import> matplotlib.pyplot as plt> import> seaborn as sns> sns.heatmap(c)> plt.show()> |
>
>
Sortida :
Ara calcularem el vectors propis i valors propis per al nostre espai de funcions que serveixen per identificar els components principals del nostre espai de funcions.
Python 3
eigenvalues, eigenvectors> => np.linalg.eig(c)> print> (> 'Eigen values:
'> , eigenvalues)> print> (> 'Eigen values Shape:'> , eigenvalues.shape)> print> (> 'Eigen Vector Shape:'> , eigenvectors.shape)> |
>
>
Sortida :
Eigen values: [1.32816077e+01 5.69135461e+00 2.81794898e+00 1.98064047e+00 1.64873055e+00 1.20735661e+00 6.75220114e-01 4.76617140e-01 4.16894812e-01 3.50693457e-01 2.93915696e-01 2.61161370e-01 2.41357496e-01 1.57009724e-01 9.41349650e-02 7.98628010e-02 5.93990378e-02 5.26187835e-02 4.94775918e-02 1.33044823e-04 7.48803097e-04 1.58933787e-03 6.90046388e-03 8.17763986e-03 1.54812714e-02 1.80550070e-02 2.43408378e-02 2.74394025e-02 3.11594025e-02 2.99728939e-02] Eigen values Shape: (30,) Eigen Vector Shape: (30, 30)>
Ordena els valors propis en ordre descendent i ordena els vectors propis corresponents en conseqüència.
Python 3
# Index the eigenvalues in descending order> idx> => eigenvalues.argsort()[::> -> 1> ]> # Sort the eigenvalues in descending order> eigenvalues> => eigenvalues[idx]> # sort the corresponding eigenvectors accordingly> eigenvectors> => eigenvectors[:,idx]> |
>
>
La variància explicada és el terme que ens dóna una idea de la quantitat de la variància total que s'ha conservat seleccionant els components principals en comptes de l'espai de característiques original.
Python 3
explained_var> => np.cumsum(eigenvalues)> /> np.> sum> (eigenvalues)> explained_var> |
>
>
Sortida :
array([0.44272026, 0.63243208, 0.72636371, 0.79238506, 0.84734274, 0.88758796, 0.9100953 , 0.92598254, 0.93987903, 0.95156881, 0.961366 , 0.97007138, 0.97811663, 0.98335029, 0.98648812, 0.98915022, 0.99113018, 0.99288414, 0.9945334 , 0.99557204, 0.99657114, 0.99748579, 0.99829715, 0.99889898, 0.99941502, 0.99968761, 0.99991763, 0.99997061, 0.99999557, 1. ])>
Determineu el nombre de components principals
Aquí podem considerar el nombre de components principals de qualsevol valor que escollim o limitant la variància explicada. Aquí estic considerant la variància explicada més del 50%. Comprovem quants components principals entren en això.
Python 3
n_components> => np.argmax(explained_var>> => 0.50> )> +> 1> n_components> |
>
>
Sortida :
model tcp i ip
2>
Projecteu les dades sobre els components principals seleccionats
- Trobeu la matriu de projecció, és una matriu de vectors propis corresponent als valors propis més grans de la matriu de covariància de les dades. projecta el conjunt de dades d'alta dimensió en un subespai de dimensions inferiors
- Els vectors propis de la matriu de covariància de les dades s'anomenen els eixos principals de les dades, i la projecció de les instàncies de dades sobre aquests eixos principals s'anomena components principals.
Python 3
# PCA component or unit matrix> u> => eigenvectors[:,:n_components]> pca_component> => pd.DataFrame(u,> > index> => cancer[> 'feature_names'> ],> > columns> => [> 'PC1'> ,> 'PC2'> ]> > )> # plotting heatmap> plt.figure(figsize> => (> 5> ,> 7> ))> sns.heatmap(pca_component)> plt.title(> 'PCA Component'> )> plt.show()> |
>
>
Sortida :
- A continuació, projectem el nostre conjunt de dades mitjançant la fórmula:
- Aleshores, la reducció de la dimensionalitat s'obté conservant només aquells eixos (dimensions) que representen la major part de la variància i descartant tots els altres.
Trobar projecció en PCA
Python 3
# Matrix multiplication or dot Product> Z_pca> => Z @ pca_component> # Rename the columns name> Z_pca.rename({> 'PC1'> :> 'PCA1'> ,> 'PC2'> :> 'PCA2'> }, axis> => 1> , inplace> => True> )> # Print the Pricipal Component values> print> (Z_pca)> |
>
>
Sortida :
PCA1 PCA2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>
Els vectors propis de la matriu de covariància de les dades s'anomenen els eixos principals de les dades, i la projecció de les instàncies de dades sobre aquests eixos principals s'anomena components principals. Aleshores, la reducció de la dimensionalitat s'obté conservant només aquells eixos (dimensions) que representen la major part de la variància i descartant tots els altres.
PCA utilitzant Sklearn
Hi ha diferents biblioteques en les quals s'ha automatitzat tot el procés d'anàlisi de components principals implementant-lo en un paquet com a funció i només hem de passar el nombre de components principals que voldríem tenir. Sklearn és una d'aquestes biblioteques que es pot utilitzar per a la PCA tal com es mostra a continuació.
Python 3
# Importing PCA> from> sklearn.decomposition> import> PCA> # Let's say, components = 2> pca> => PCA(n_components> => 2> )> pca.fit(Z)> x_pca> => pca.transform(Z)> # Create the dataframe> df_pca1> => pd.DataFrame(x_pca,> > columns> => [> 'PC{}'> .> > format> (i> +> 1> )> > for> i> in> range> (n_components)])> print> (df_pca1)> |
>
>
Sortida:
PC1 PC2 0 9.184755 1.946870 1 2.385703 -3.764859 2 5.728855 -1.074229 3 7.116691 10.266556 4 3.931842 -1.946359 .. ... ... 564 6.433655 -3.573673 565 3.790048 -3.580897 566 1.255075 -1.900624 567 10.365673 1.670540 568 -5.470430 -0.670047 [569 rows x 2 columns]>
Podem coincidir amb el resultat de Z_pca anterior perquè és exactament els mateixos valors.
Python 3
# giving a larger plot> plt.figure(figsize> => (> 8> ,> 6> ))> plt.scatter(x_pca[:,> 0> ], x_pca[:,> 1> ],> > c> => cancer[> 'target'> ],> > cmap> => 'plasma'> )> # labeling x and y axes> plt.xlabel(> 'First Principal Component'> )> plt.ylabel(> 'Second Principal Component'> )> plt.show()> |
>
>
Sortida:
Python 3
# components> pca.components_> |
>
>
Sortida :
array([[ 0.21890244, 0.10372458, 0.22753729, 0.22099499, 0.14258969, 0.23928535, 0.25840048, 0.26085376, 0.13816696, 0.06436335, 0.20597878, 0.01742803, 0.21132592, 0.20286964, 0.01453145, 0.17039345, 0.15358979, 0.1834174 , 0.04249842, 0.10256832, 0.22799663, 0.10446933, 0.23663968, 0.22487053, 0.12795256, 0.21009588, 0.22876753, 0.25088597, 0.12290456, 0.13178394], [-0.23385713, -0.05970609, -0.21518136, -0.23107671, 0.18611302, 0.15189161, 0.06016536, -0.0347675 , 0.19034877, 0.36657547, -0.10555215, 0.08997968, -0.08945723, -0.15229263, 0.20443045, 0.2327159 , 0.19720728, 0.13032156, 0.183848 , 0.28009203, -0.21986638, -0.0454673 , -0.19987843, -0.21935186, 0.17230435, 0.14359317, 0.09796411, -0.00825724, 0.14188335, 0.27533947]])>
Avantatges de l'anàlisi de components principals
- Reducció de la dimensionalitat : L'anàlisi de components principals és una tècnica popular utilitzada per reducció de la dimensionalitat , que és el procés de reduir el nombre de variables d'un conjunt de dades. En reduir el nombre de variables, PCA simplifica l'anàlisi de dades, millora el rendiment i facilita la visualització de les dades.
- Selecció de funcions : Es pot utilitzar l'anàlisi de components principals selecció de característiques , que és el procés de selecció de les variables més importants d'un conjunt de dades. Això és útil en l'aprenentatge automàtic, on el nombre de variables pot ser molt gran i és difícil identificar les variables més importants.
- Visualització de dades : Es pot utilitzar l'anàlisi de components principals Multicolinealitat : Es pot utilitzar l'anàlisi de components principals per tractar multicolinealitat , que és un problema comú en una anàlisi de regressió on dues o més variables independents estan altament correlacionades. La PCA pot ajudar a identificar l'estructura subjacent de les dades i crear noves variables no correlacionades que es poden utilitzar en el model de regressió.
- Reducció de soroll : L'anàlisi de components principals es pot utilitzar per reduir el soroll de les dades. En eliminar els components principals amb baixa variància, que se suposa que representen soroll, l'anàlisi de components principals pot millorar la relació senyal-soroll i facilitar la identificació de l'estructura subjacent a les dades.
- Compressió de dades : L'anàlisi de components principals es pot utilitzar per a la compressió de dades. En representar les dades amb un nombre més petit de components principals, que capturen la major part de la variació de les dades, PCA pot reduir els requisits d'emmagatzematge i accelerar el processament.
- Detecció d'outliers : L'anàlisi de components principals es pot utilitzar per a la detecció de valors atípics. Outliers són punts de dades que són significativament diferents dels altres punts de dades del conjunt de dades. L'anàlisi de components principals pot identificar aquests valors atípics buscant punts de dades que estiguin lluny dels altres punts de l'espai dels components principals.
Inconvenients de l'anàlisi de components principals
- Interpretació dels components principals : Els components principals creats per l'anàlisi de components principals són combinacions lineals de les variables originals, i sovint és difícil interpretar-les en termes de les variables originals. Això pot dificultar l'explicació dels resultats de la PCA als altres.
- Escalat de dades : L'anàlisi de components principals és sensible a l'escala de les dades. Si les dades no s'escalen correctament, és possible que PCA no funcioni bé. Per tant, és important escalar les dades abans d'aplicar l'anàlisi de components principals.
- Pèrdua d'informació : L'anàlisi de components principals pot provocar la pèrdua d'informació. Tot i que l'anàlisi de components principals redueix el nombre de variables, també pot provocar la pèrdua d'informació. El grau de pèrdua d'informació depèn del nombre de components principals seleccionats. Per tant, és important seleccionar acuradament el nombre de components principals a retenir.
- Relacions no lineals : L'anàlisi de components principals suposa que les relacions entre variables són lineals. Tanmateix, si hi ha relacions no lineals entre variables, és possible que l'anàlisi de components principals no funcioni bé.
- Complexitat computacional : l'anàlisi de components principals informàtics pot ser costosa computacionalment per a grans conjunts de dades. Això és especialment cert si el nombre de variables del conjunt de dades és gran.
- Sobreajustament : L'anàlisi de components principals de vegades pot donar lloc a sobreajustament , que és quan el model s'ajusta massa bé a les dades d'entrenament i funciona malament amb dades noves. Això pot passar si s'utilitzen massa components principals o si el model s'entrena en un conjunt de dades petit.
Preguntes freqüents (FAQ)
1. Què és l'anàlisi de components principals (PCA)?
La PCA és una tècnica de reducció de dimensionalitat utilitzada en estadístiques i aprenentatge automàtic per transformar dades d'alta dimensió en una representació de dimensions inferiors, conservant la informació més important.
2. Com funciona un PCA?
Els components principals són combinacions lineals de les característiques originals que PCA troba i utilitza per capturar la major variació de les dades. Per ordre de la quantitat de variància que expliquen, es disposen aquests components ortogonals.
3. Quan s'ha d'aplicar PCA?
L'ús de PCA és avantatjós quan es treballa amb conjunts de dades multicolineals o d'alta dimensió. L'extracció de característiques, la reducció de soroll i el preprocessament de dades en són usos destacats.
4. Com s'interpreten els components principals?
Els nous eixos es representen a l'espai de característiques per cada component principal. Un indicador de la importància d'un component a l'hora de capturar la variabilitat de les dades és la seva capacitat per explicar una variància més gran.
5. Quina és la importància dels components principals?
Els components principals representen les direccions en què les dades varien més. Els primers components solen capturar la majoria de la variància de les dades, cosa que permet una representació més concisa.