Principale Componentenanalyse is een essentieel dimensionaliteitsverminderingsproces bij machinaal leren. Deze techniek omvat een eenvoudige matrixbewerking uit de statistiek en de lineaire algebra. De reden om deze methode te gebruiken is het berekenen, analyseren van de oorspronkelijke gegevens en het genereren van een projectie in de minder dimensie. U kunt deze techniek ook gebruiken om de projectie van eenzelfde getal te vinden. Dit artikel zal je helpen het concept van Principal Component Analysis te begrijpen en hoe je de analyse in R en Python uitvoert.

Principale Componenten Analyse

PCA of Principal Component Analysis helpt de dimensionaliteit van enorme gegevenspunten te verminderen tot eenvoudigere vormen. Deze eigenschap van PCA maakt het een dimensionaliteitsreductiemethode. Het werkt door variabelen te transformeren in kleinere door de belangrijkste informatie van de grote set te elimineren.
Door de variabelen van de gegevensverzameling te verkleinen, verlaagt u de nauwkeurigheid van de gegevens. Om de gegevensverzameling te vereenvoudigen, moet u het risico van een lage nauwkeurigheid aanvaarden.
Kleinere datasets zullen u helpen de toestand gemakkelijk te visualiseren en te verkennen. Op die manier zal het machine-learning algoritme de gegevens snel en gemakkelijk analyseren, met behoud van de relevantie van de gegevens. In eenvoudige woorden: PCA zal de variabelen verminderen en de belangrijke informatie behouden om de gegevens gemakkelijk te analyseren.

Voorbeeld van principale componentenanalyse

– Principle Component Analysis Voorbeeld in 2D

U kunt het concept van principale componentenanalyse begrijpen in twee dimensies. Deze dimensies zijn lengte en gewicht. U plot de dataset in het vlak als punten. Maar wanneer we de variaties eruit halen, zal PCA een nieuw coördinatensysteem identificeren. In dit systeem zal elk punt een x- en een y-waarde bevatten. Er is geen fysische betekenis van de assen. Deze assen zijn de hoofdcomponenten en de combinatie van lengte en gewicht. Op deze manier zullen zelfs de enkele assen veel variaties hebben.

– Principle Component Analysis Voorbeeld in 3D

Principle Component Analysis wordt nuttiger door drie dimensies te hebben. Op die manier kunt u de gegevens vanuit verschillende hoeken analyseren. U kunt bijvoorbeeld de gegevens in 2D bekijken nadat u ze in het 3D-vlak hebt geplot. Door de camerahoek te draaien, kunt u de gegevens vanuit het beste gezichtspunt visualiseren. De transformatie van PCA zorgt ervoor dat:
– Er meer variaties zijn in de horizontale as of PC1.
– Er de op één na meeste variaties zijn in de verticale as of PC2,
– Er de minste variaties zijn in de derde as of PC3.
Op die manier kunt u de derde as gemakkelijk laten vallen. De gegevens in deze as zijn niet zo belangrijk als de horizontale as en de verticale as in het vlak.

Hoofdcomponentenanalyse in R

U kunt de principale componentenanalyse in R berekenen met de functies princomp() en prcomp(). Deze functies maken een eenvoudige en ongecompliceerde analyse mogelijk. Beide functies differentiëren in methoden om de PCA te berekenen.

– Prcomp() Functie om PCA te berekenen

U kunt deze methode kiezen voor principale componentenanalyse in R om nauwkeurige cijfers te krijgen. De methode berekent PCA door singuliere waarde-afbraak van de gegevensmatrix te gebruiken. De eigen op de covariantiematrix wordt niet meegenomen.

– Princomp() Functie om PCA te berekenen

Deze methode gebruikt eigen op de covariantie- of correlatiematrix. Deze methode loopt door compatibiliteit door S-PLUS resultaat.
– pilots.pca<-prcomp(pilots[,2:7])
– piloten.pca
– ## Standaardafwijkingen (1, .., p=6):
– • ## [1] 41.497499 29.637102 20.035932 16.157875 11.353640 7.097781
– • ##
– ## Rotatie (n x k) = (6 x 6):
– ## PC1 PC2 PC3 PC4
– Intelligentie 0,21165160 -0,38949336 0,88819049 -0,03082062
– Vorm van relaties -0,03883125 -0,06379320 0,09571590 0,19128493
– Dynamometer 0,08012946 0,06602004 0,08145863 0,12854488
– ## Dotting 0.77552673 0.60795970 0.08071120 -0.08125631
– Sensory Motor Coordination -0,09593926 -0,01046493 0,01494473 -0,96813856
– ## Perservation 0.58019734 -0.68566916 -0.43426141 -0.04518327
– ## PC5 PC6
– Intelligentie -0.04760343 -0.10677164
– Vorm van relaties -0,14793191 0,96269790
– Dynamometer 0,97505667 0,12379748
– Stippelen -0.10891968 0.06295166
– Zintuiglijke, motorische coördinatie 0,10919120 0,20309559
– Bewaren 0,03644629 0,03572141
Je kan ook met behulp van de prcomp() samenvattingsmethode outputs genereren van de proportie van de variantie die de componenten verklaren.
– samenvatting(pilots.pca)
– ## Belang van componenten:
– ## PC1 PC2 PC3 PC4 PC5 PC6
– Standaardafwijking 41,4975 29,6371 20,0359 16,15788 11,35364 7,09778
– Aandeel van de variantie 0,5003 0,2552 0,1166 0,07585 0,03745 0,01464
– Cumulatief aandeel 0.5003 0.7554 0.8721 0.94792 0.98536 1.00000

Principale Componenten Analyse in Python

Je kan de scikit-learn bibliotheek gebruiken om de Principal Component Analysis van de dataset te berekenen.Deze aanpak is voordelig omdat je nieuwe data herhaaldelijk kan toepassen om de projectie gemakkelijk te vinden na het berekenen van de projectie. Je specificeert het aantal componenten als parameter bij het creëren van de klasse.
De klasse zal de eerste fit van de dataset zijn. U gebruikt de fit() functie, actuele of andere dataset en kiest de dimensie om de transform() functie te vinden. Je hebt toegang tot hoofdcomponenten en eigenwaarden bij hoofdcomponentenanalyse met components_attributes en explained_variance. In het onderstaande voorbeeld maak je eerst een instantie aan met behulp van de klasse. Daarna pas je de gegevens in een 3×2 matrix. Dit geeft je toegang tot de vectoren en waarden van de projectie. Tenslotte kun je de eigenlijke data transformeren.
– uit numpy importeer matrix
– uit numpy import gemiddelde
– uit numpy import cov
– uit numpy.linalg import eig
– # definieer een matrix
– A = array([[4, 5], [6, 7], [8, 9]])
– print(A)
– # bereken het gemiddelde van elke kolom
– M = gemiddelde(A.T, as=1)
– afdruk(M)
– # centreer de kolommen door de kolomgemiddelden af te trekken
– C = A – M
– print(C)
– # bereken covariantiematrix van gecentreerde matrix
– V = cov(C.T)
– print(V)
– # eigendecompositie van covariantiematrix
– waarden, vectoren = eig(V)
– print(vectoren)
– print(waarden)
– # project gegevens
– P = vectors.T.dot(C.T)
– afdruk(P.T)
Door voorbeeldgegevens op de 3×2 matrix uit te voeren, zullen we hoofdcomponenten en hun waarden vinden. Daarna zullen we de projecties van de eigenlijke matrix vinden. Door deze methode te gebruiken, zullen we de kleine drijvende punten identificeren en dezelfde hoofdcomponenten, projecties, en singuliere waarden bereiken.
– • [[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. ]]

Conclusie

U kunt om het even welke programmeertaal gebruiken zoals Python, R, C++, enz. om het volledige proces te hardcoderen en Principal Component Analysis toepassingen te vinden. Bovendien kan je ook gebruik maken van de bibliotheken van verschillende contribuanten en de gegevens uitvoeren. Als de complexiteit van het probleem niet erg hoog is, kunt u beter een hard-code techniek gebruiken in plaats van bibliotheken. Op deze manier kunt u de back-end analyseren om problemen gemakkelijk te begrijpen. Wanneer u principale componenten analyse in R gebruikt, kunt u bibliotheken gebruiken zoals prcomp, princomp, HSAUR, en anderen. Dit helpt u de toepassing direct te gebruiken.