L’analisi a componenti principali è un processo di riduzione della dimensionalità essenziale nell’apprendimento automatico. Questa tecnica include una semplice operazione matriciale dalla statistica e dall’algebra lineare. Il motivo per utilizzare questo metodo è quello di calcolare, analizzare i dati originali e generare una proiezione nella dimensione minore. È anche possibile utilizzare questa tecnica per trovare la proiezione dello stesso numero. Questo articolo vi aiuterà a capire il concetto di Analisi delle Componenti Principali e come eseguire l’analisi in R e Python.

Analisi delle componenti principali

La PCA o Principal Component Analysis aiuta a diminuire la dimensionalità dei punti di dati massicci in forme più semplici. Questa proprietà della PCA la rende un metodo di riduzione delle dimensioni. Funziona trasformando le variabili in variabili più piccole eliminando le informazioni principali del grande insieme.
Quando si riducono le variabili del set di dati, si abbassa la precisione dei dati. Per semplificare il set di dati, è necessario accettare il rischio di una bassa accuratezza.
Set di dati più piccoli vi aiuteranno a visualizzare ed esplorare facilmente la condizione. In questo modo, l’algoritmo di apprendimento automatico analizzerà i dati rapidamente e facilmente, mantenendo la rilevanza dei dati. In parole semplici, la PCA ridurrà le variabili e conserverà le informazioni importanti per analizzare facilmente i dati.

Esempio di analisi a componenti principali

Esempio di analisi a componenti principali in 2D

Potete capire il concetto di analisi delle componenti principali in due dimensioni. Queste dimensioni sono l’altezza e il peso. Traccerete il set di dati nel piano come punti. Ma quando si tratta di estrarre le variazioni, la PCA identificherà un nuovo sistema di coordinate. In questo sistema, ogni punto conterrà un valore x e un valore y. Non c’è un significato fisico degli assi. Questi assi sono le componenti principali e la combinazione di altezza e peso. In questo modo, anche i singoli assi avranno molte variazioni.

Esempio di analisi a componenti principali in 3D

La Principle Component Analysis diventa più utile avendo tre dimensioni. In questo modo, è possibile analizzare i dati da diverse angolazioni. Per esempio, potete visualizzare i dati in 2D dopo averli tracciati nel piano 3D. Ruotando l’angolo della telecamera, è possibile visualizzare i dati dal punto di vista migliore. La trasformazione di PCA assicura che:

  • Ci sono più variazioni nell’asse orizzontale o PC1.
  • Ci sono seconde variazioni nell’asse verticale o PC2,
  • Ci siano meno variazioni nel terzo asse o PC3.
    In questo modo, si può facilmente abbandonare il terzo asse. I dati in questo asse non sono così importanti come l’asse orizzontale e l’asse verticale nel piano.

Analisi delle componenti principali in R

Potete calcolare l’analisi delle componenti principali in R usando le funzioni princomp() e prcomp(). Queste funzioni permettono un’analisi facile e diretta. Entrambe queste funzioni si differenziano nei metodi per calcolare la PCA.

Funzione Prcomp() per calcolare la PCA

Potete scegliere questo metodo per l’analisi delle componenti principali in R per ottenere dati numerici accurati. Il metodo calcola la PCA usando la decomposizione dei valori singolari della matrice dei dati. Non includerà gli eigen della matrice di covarianza.

Funzione Princomp() per calcolare la PCA

Questo metodo usa eigen sulla matrice di covarianza o di correlazione. Questo metodo è compatibile con il risultato di S-PLUS.

  • piloti.pca<-prcomp(piloti[,2:7])
  • piloti.pca
  • ## Deviazioni standard (1, .., p=6):
  • • ## [1] 41.497499 29.637102 20.035932 16.157875 11.353640 7.097781
  • • ##
  • ## Rotazione (n x k) = (6 x 6):
  • ## PC1 PC2 PC3 PC4
  • ## Intelligenza 0.21165160 -0.38949336 0.88819049 -0.03082062
  • ## Forma.Relazioni -0.03883125 -0.06379320 0.09571590 0.19128493
  • ## Dinamometro 0.08012946 0.06602004 0.08145863 0.12854488
  • ## Punteggiatura 0.77552673 0.60795970 0.08071120 -0.08125631
  • ## Coordinazione Sensoriale.Motoria -0.09593926 -0.01046493 0.01494473 -0.96813856
  • ## Perservazione 0.58019734 -0.68566916 -0.43426141 -0.04518327
  • ## PC5 PC6
  • ## Intelligenza -0.04760343 -0.10677164
  • ## Forma.Relazioni -0.14793191 0.96269790
  • ## Dinamometro 0.97505667 0.12379748
  • ## Punteggiatura -0.10891968 0.06295166
  • ## Coordinazione Sensoriale.Motoria 0.10919120 0.20309559
  • ## Perservazione 0.03644629 0.03572141
    Potete anche generare output della proporzione della varianza con l’aiuto del metodo di sintesi prcomp() che le componenti spiegano.
  • riassunto(piloti.pca)
  • ## Importanza delle componenti:
  • ## PC1 PC2 PC3 PC4 PC5 PC6
  • ## Deviazione standard 41,4975 29,6371 20,0359 16,15788 11,35364 7,09778
  • ## Percentuale della varianza 0,5003 0,2552 0,1166 0,07585 0,03745 0,01464
  • ## Proporzione cumulativa 0.5003 0.7554 0.8721 0.94792 0.98536 1.00000

Analisi delle componenti principali in Python

È possibile utilizzare la libreria scikit-learn per calcolare l’analisi delle componenti principali del set di dati. Questo approccio è vantaggioso perché è possibile applicare nuovi dati in modo ripetitivo per trovare facilmente la proiezione dopo aver calcolato la proiezione. Specificherete il numero di componenti come parametro durante la creazione della classe.
La classe sarà il primo adattamento del set di dati. Userete la funzione fit(), attuale, o altri dataset e sceglierete la dimensione per trovare la funzione transform(). Potete accedere alle componenti principali e agli autovalori dell’analisi delle componenti principali con components_attributes e explained_variance. Nell’esempio qui sotto, si crea prima l’istanza utilizzando la classe. Poi, inserite i dati in una matrice 3×2. Questo vi darà accesso ai vettori e ai valori della proiezione. Infine, potete trasformare i dati effettivi.

  • da numpy importare array
  • da numpy importare media
  • da numpy importare cov
  • da numpy.linalg importare eig
  • # definire una matrice
  • A = array([[4, 5], [6, 7], [8, 9]])
  • print(A)
  • # calcola la media di ogni colonna
  • M = media(A.T, asse=1)
  • print(M)
  • # centra le colonne sottraendo le medie delle colonne
  • C = A – M
  • stampa(C)
  • # calcola la matrice di covarianza della matrice centrata
  • V = cov(C.T)
  • stampa(V)
  • # eigendecomposizione della matrice di covarianza
  • valori, vettori = eig(V)
  • stampa(vettori)
  • print(valori)
  • # dati del progetto
  • P = vettori.T.dot(C.T)
  • print(P.T)
    Eseguendo i dati campione sulla matrice 3×2, troveremo le componenti principali e i loro valori. Dopo di che, si troveranno le proiezioni della matrice attuale. Usando questo metodo, identificheremo le componenti principali minori e otterremo le stesse componenti principali, proiezioni e valori singolari.
  • • [[4 5]
  • • [6 7]
  • • [8 9]][6. 7.]
  • • [[-2. -2.]
  • • [ 0. 0.]
  • • [ 2. 2.]]
  • • [[4. 4.]
  • • [4. 4.]]
  • • [[ 0.70710678 -0.70710678]
  • • [ 0.70710678 0.70710678]]
  • • [8. 0.]
  • • [[-2.82842712 0. ]
  • • [ 0. 0. ]
  • • [ 2.82842712 0. ]]

Conclusione

È possibile utilizzare qualsiasi linguaggio di programmazione come Python, R, C++, ecc. per codificare l’intero processo e trovare applicazioni di Principal Component Analysis. Inoltre, puoi anche utilizzare le librerie di diversi collaboratori ed eseguire i dati. Se la complessità del problema non è molto alta, dovreste usare una tecnica hard-code invece delle librerie. In questo modo, è possibile analizzare il back-end per capire i problemi facilmente. Quando usate l’analisi delle componenti principali in R, potete usare librerie come prcomp, princomp, HSAUR e altre. Questo vi aiuta ad usare l’applicazione direttamente.