Ich habe viel über PCA gelesen, einschließlich verschiedener Tutorials und Fragen (wie diese , diese , diese und diese ).
Das geometrische Problem, das PCA zu optimieren versucht, ist mir klar: PCA versucht, die erste Hauptkomponente durch Minimierung des Rekonstruktionsfehlers (Projektionsfehlers) zu finden, wodurch gleichzeitig die Varianz der projizierten Daten maximiert wird.
Als ich das zum ersten Mal las, dachte ich sofort an eine lineare Regression. Vielleicht können Sie es bei Bedarf mit einem Gefälle lösen.
Als ich las, dass das Optimierungsproblem durch die Verwendung der linearen Algebra und das Auffinden von Eigenvektoren und Eigenwerten gelöst wird, war ich jedoch völlig außer mir. Ich verstehe einfach nicht, wie diese Verwendung der linearen Algebra ins Spiel kommt.
Meine Frage lautet also: Wie kann PCA von einem geometrischen Optimierungsproblem zu einem linearen Algebraproblem werden? Kann jemand eine intuitive Erklärung liefern?
Ich suche nicht nach einer Antwort wie dieser , die besagt: "Wenn Sie das mathematische Problem der PCA lösen, ist es am Ende gleichbedeutend mit dem Finden der Eigenwerte und Eigenvektoren der Kovarianzmatrix." Erklären Sie, warum Eigenvektoren die Hauptkomponenten darstellen und warum die Eigenwerte die Varianz der darauf projizierten Daten darstellen
Ich bin übrigens ein Software-Ingenieur und kein Mathematiker.
Hinweis: Die obige Abbildung wurde aus diesem PCA-Tutorial übernommen und modifiziert .
quelle
optimization problem
Ja, das PCA-Problem könnte meines Erachtens durch (iterative, konvergente) Optimierungsansätze gelöst werden. Aber da es eine mathematisch geschlossene Lösung gibt, warum nicht diese einfachere, effiziente Lösung verwenden?provide an intuitive explanation
. Ich frage mich, warum eine intuitive und klare Antwort von Amoeba, zu der ich verlinkt habe, nicht zu Ihnen passt. Du fragst_why_ eigenvectors come out to be the principal components...
warum? Per Definition! Eigenvektoren sind die Hauptrichtungen einer Datenwolke.Antworten:
Problemstellung
Stimmt. Ich erkläre den Zusammenhang zwischen diesen beiden Formulierungen in meiner Antwort hier (ohne Mathe) oder hier (mit Mathe).
Nehmen wir die zweite Formulierung: PCA versucht, die Richtung so zu finden, dass die Projektion der Daten darauf die höchstmögliche Varianz aufweist. Diese Richtung wird per Definition die erste Hauptrichtung genannt. Wir können es wie folgt formalisieren: Wenn die KovarianzmatrixC , suchen wir nach einem Vektor w mit der Längeneinheit ∥w∥=1 , so dass w⊤Cw maximal ist.
(Nur für den Fall, dass dies nicht klar ist: WennX die zentrierte Datenmatrix ist, dann ist die Projektion durch Xw und ihre Varianz ist 1n−1(Xw)⊤⋅Xw=w⊤⋅(1n−1X⊤X)⋅w=w⊤Cw .)
Andererseits ist ein Eigenvektor vonC per Definition ein beliebiger Vektor v so dass Cv=λv .
Es zeigt sich, dass die erste Hauptrichtung durch den Eigenvektor mit dem größten Eigenwert gegeben ist. Dies ist eine nicht triviale und überraschende Aussage.
Beweise
Wenn man ein Buch oder Tutorial auf PCA aufschlägt, kann man dort den folgenden fast einzeiligen Beweis der obigen Aussage finden. Wir wollenw⊤Cw unter der Bedingung maximieren , dass ∥w∥=w⊤w=1 ; dies kann durch Einführen eines Lagrange-Multiplikators und Maximieren von w⊤Cw−λ(w⊤w−1) ; differenzierend erhalten wir Cw−λw=0 , was die Eigenvektorgleichung ist. Wir sehen, dass λ muss tatsächlich der größte Eigenwert sein, indem diese Lösung in die Zielfunktion eingesetzt wird, was ergibt, dass w⊤Cw−λ(w⊤w−1)=w⊤Cw=λw⊤w=λ . Aufgrund der Tatsache, dass diese Zielfunktion maximiert werden soll, muss λ der größte Eigenwert QED sein.
Dies ist für die meisten Menschen nicht sehr intuitiv.
Ein besserer Beweis (siehe z. B. diese übersichtliche Antwort von @ cardinal ) besagt, dassC in seiner Eigenvektorbasis diagonal ist , weil es eine symmetrische Matrix ist. (Dies wird eigentlich Spektralsatz genannt .) Wir können also eine orthogonale Basis wählen, nämlich diejenige, die durch die Eigenvektoren gegeben ist, wobei C diagonal ist und Eigenwerte λi auf der Diagonale hat. Auf dieser Basis vereinfacht sich w⊤Cw zu ∑ λichw2ich , oder mit anderen Worten, die Varianz ist durch die gewichtete Summe der Eigenwerte gegeben. Es ist fast unmittelbar, dass man zur Maximierung dieses Ausdrucks einfach w nehmen solltew =(1,0,0,…,0) , dh der erste Eigenvektor, der die Varianzλ1 ergibt(in der Tat, wenn man von dieser Lösung abweicht und Teile des größten Eigenwerts gegen Teile der kleineren Teile "tauscht", führt dies nur zu insgesamt kleineren Werten Varianz). Beachten Sie, dass der Wert vonw⊤C w nicht von der Basis abhängt! Der Wechsel auf die Eigenvektorbasis ist eine Drehung. In 2D kann man sich also vorstellen, einfach ein Stück Papier mit dem Streudiagramm zu drehen. Dies kann natürlich keine Abweichungen ändern.
Ich halte dies für ein sehr intuitives und nützliches Argument, das sich jedoch auf den Spektralsatz stützt. Das eigentliche Problem hier ist meiner Meinung nach: Was ist die Intuition hinter dem Spektralsatz?
Spektralsatz
Nehmen eine symmetrische MatrixC . Nimm seinen Eigenvektor w1 mit dem größten Eigenwert λ1 . Machen Sie diesen Eigenvektor zum ersten Basisvektor und wählen Sie andere Basisvektoren nach dem Zufallsprinzip (so dass alle orthonormal sind). Wie wird auf dieser Basis aussehen?C
Es wirdλ1 in der oberen linken Ecke haben, weil w1= ( 1 , 0 , 0 … 0 ) auf dieser Basis und C w1= ( C11, C21, … Cp 1) gleich sein muss λ1w1= ( λ1, 0 , 0 … 0 ) .
Aus demselben Grund wird es in der ersten Spalte unterλ1 Nullen geben .
Aber weil es symmetrisch ist, hat es auch nachλ1 Nullen in der ersten Reihe . So wird es aussehen:
Wobei leerer Raum bedeutet, dass sich dort ein Block einiger Elemente befindet. Da die Matrix symmetrisch ist, ist auch dieser Block symmetrisch. Wir können also genau dasselbe Argument anwenden, indem wir effektiv den zweiten Eigenvektor als zweiten Basisvektor verwenden undλ1 und λ2 auf die Diagonale setzen. Dies kann fortgesetzt werden, bis C diagonal ist. Das ist im Wesentlichen der Spektralsatz. (Beachten Sie, wie es nur funktioniert, weil C symmetrisch ist.)
Hier ist eine abstraktere Neuformulierung genau des gleichen Arguments.
Wir wissen, dassC w1= λ1w1 , daher definiert der erste Eigenvektor einen eindimensionalen Unterraum, in dem C als skalare Multiplikation fungiert. Nehmen wir nun einen beliebigen Vektor v senkrecht zu w1 . Dann ist es fast unmittelbar, dass C v auch orthogonal zu w1 . Tatsächlich:
Dies bedeutet, dassC auf den gesamten verbleibenden Teilraum senkrecht zu w1 einwirkt, so dass er von w1 getrennt bleibt . Dies ist die entscheidende Eigenschaft von symmetrischen Matrizen. Also können wir den größten Eigenvektor dort finden, w2 , und auf die gleiche Weise vorgehen, um schließlich eine orthonormale Basis von Eigenvektoren zu konstruieren.
quelle
prcomp(iris[,1:4], center=T, scale=T)
) laufen lasse , sehe ich Einheitslängen-Eigenvektoren mit einer Reihe von Floats wie(0.521, -0.269, 0.580, 0.564)
. In Ihrer Antwort unter "Beweise" schreiben Sie jedoch: Es ist fast unmittelbar, dass Sie zur Maximierung dieses Ausdrucks einfach w = (1,0,0,…, 0) nehmen, dh den ersten Eigenvektor . Warum sieht der Eigenvektor in Ihrem Beweis so wohlgeformt aus?Es gibt ein Ergebnis aus dem Jahr 1936 von Eckart und Young ( https://ccrma.stanford.edu/~dattorro/eckart%26young.1936.pdf ), in dem Folgendes angegeben ist
wobei M (r) die Menge der Rang-r-Matrizen ist, was im Grunde genommen bedeutet, dass die ersten r Komponenten der SVD von X die beste Näherung der niedrigrangigen Matrix von X ergeben und am besten durch die quadratische Frobenius-Norm definiert sind - die Summe der Quadrate Elemente einer Matrix.
Dies ist ein allgemeines Ergebnis für Matrizen und hat auf den ersten Blick nichts mit Datensätzen oder Dimensionsreduktion zu tun.
quelle
quelle
"Das maximiert gleichzeitig die Varianz der projizierten Daten." Haben Sie von Rayleigh Quotient gehört ? Vielleicht ist das eine Art, das zu sehen. Der Rayleigh-Quotient der Kovarianzmatrix gibt Ihnen die Varianz der projizierten Daten an. (und die Wiki-Seite erklärt, warum Eigenvektoren den Rayleigh-Quotienten maximieren)
quelle
@amoeba gibt ordentliche Formalisierung und Beweis von:
Aber ich denke, es gibt einen intuitiven Beweis für:
Wir können w T Cw als ein Punktprodukt zwischen dem Vektor w und Cw interpretieren , das durch Durchlaufen der Transformation C erhalten wird:
w T Cw = ‖w‖ * ‖Cw‖ * cos (w, Cw)
Da w eine feste Länge hat, benötigen wir zur Maximierung von w T Cw:
Wenn wir w als Eigenvektor von C mit dem größten Eigenwert annehmen, können wir beide gleichzeitig archivieren:
Da Eigenvektoren orthogonal sind, bilden sie zusammen mit den anderen Eigenvektoren von C eine Menge von Hauptkomponenten zu X.
nachweis von 1
zerlegen w in orthogonale primäre und sekundäre Eigenvektoren v1 und v2 , vorausgesetzt, ihre Länge ist v1 bzw. v2. wir wollen beweisen
(λ 1 w) 2 > ((λ 1 v1) 2 + (λ 2 v2) 2 )
da λ 1 > λ 2 , haben wir
((λ 1 v1) 2 + (λ 2 v2) 2 )
<((λ 1 v1) 2 + (λ 1 v2) 2 )
= (λ 1 ) 2 * (v1 2 + v2 2 )
= (& lgr; 1 ) 2 · w 2
quelle