Suche…


Reduzierung der Dimension durch Hauptkomponentenanalyse

Die Hauptkomponentenanalyse findet Folgen linearer Kombinationen der Merkmale. Die erste lineare Kombination maximiert die Varianz der Merkmale (abhängig von einer Einheitsbeschränkung). Jede der folgenden Linearkombinationen maximiert die Varianz der Merkmale in dem Unterraum, der orthogonal zu dem ist, der von den vorherigen Linearkombinationen aufgespannt wurde.

Eine gemeinsame Dimension Reduktionstechnik ist nur die k ersten solchen Linearkombinationen zu verwenden. Angenommen, die Merkmale sind eine Matrix X aus n Zeilen und m Spalten. Die ersten k Linearkombinationen bilden eine Matrix & bgr; k aus m Zeilen und k Spalten. Das Produkt hat n Zeilen und k Spalten. Somit kann die resultierende Matrix β k als eine Reduktion von m auf k Dimensionen betrachtet werden, wobei die hochvarianzigen Teile der ursprünglichen Matrix X erhalten bleiben.

In scikit-learn wird PCA mit sklearn.decomposition.PCA . Angenommen, wir beginnen mit einer 100 x 7-Matrix, die so konstruiert ist, dass die Varianz nur in den ersten beiden Spalten enthalten ist (durch Skalieren der letzten 5 Spalten):

import numpy as np
np.random.seed(123) # we'll set a random seed so that our results are reproducible
X = np.hstack((np.random.randn(100, 2) + (10, 10), 0.001 * np.random.randn(100, 5)))

Lassen Sie uns auf 2 Dimensionen reduzieren:

from sklearn.decomposition import PCA
pca = PCA(n_components=2)
pca.fit(X)

Lassen Sie uns nun die Ergebnisse überprüfen. Hier sind zunächst die Linearkombinationen:

pca.components_
# array([[ -2.84271217e-01,  -9.58743893e-01,  -8.25412629e-05,
#           1.96237855e-05,  -1.25862328e-05,   8.27127496e-05,
#          -9.46906600e-05],
#        [ -9.58743890e-01,   2.84271223e-01,  -7.33055823e-05,
#          -1.23188872e-04,  -1.82458739e-05,   5.50383246e-05,
#           1.96503690e-05]])

Beachten Sie, dass die ersten beiden Komponenten in jedem Vektor um mehrere Größenordnungen größer sind als die anderen. Dies zeigt, dass die PCA erkannt hat, dass die Varianz hauptsächlich in den ersten beiden Spalten enthalten ist.

Um das Verhältnis der durch diese PCA erklärten Varianz zu überprüfen, können wir pca.explained_variance_ratio_ untersuchen:

pca.explained_variance_ratio_
# array([ 0.57039059,  0.42960728])


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow