In einem maschinellen Lernkurs habe ich gelernt, dass PCA ( Principal Component Analysis ) häufig verwendet wird, um andere maschinelle Lernalgorithmen zu beschleunigen. Stellen Sie sich zum Beispiel vor, Sie trainieren ein logistisches Regressionsmodell. Wenn Sie einen Trainingssatz für i von 1 bis n haben und die Dimension Ihres Vektors x sehr groß ist (sagen wir eine Dimension), können Sie PCA verwenden, um a zu erhalten kleinere Dimension (sagen wir k Dimensionen) Merkmalsvektor z. Anschließend können Sie Ihr logistisches Regressionsmodell auf dem Trainingsset ( z ( i ) , y ( i ) ) trainieren. für i von 1 bis n. Das Trainieren dieses Modells ist schneller, da Ihr Feature-Vektor weniger Dimensionen aufweist.
Ich verstehe jedoch nicht, warum Sie die Dimension Ihres Feature-Vektors nicht einfach auf k Dimensionen reduzieren können, indem Sie einfach k Ihrer Features zufällig auswählen und den Rest eliminieren.
Die z-Vektoren sind Linearkombinationen Ihrer a-Merkmalsvektoren. Da die z-Vektoren auf eine k-dimensionale Oberfläche beschränkt sind, können Sie die ak-eliminierten Merkmalswerte als eine lineare Funktion der k verbleibenden Merkmalswerte schreiben, und somit können alle zs durch lineare Kombinationen Ihrer k-Merkmale gebildet werden. Sollte ein Modell, das auf einem Trainingssatz mit deaktivierten Funktionen trainiert wurde, nicht dieselbe Leistung haben wie ein Modell, das auf einem Trainingssatz trainiert wurde, dessen Größe durch PCA reduziert wurde? Kommt es nur auf die Art des Modells an und ob es sich um eine Linearkombination handelt?
quelle
Antworten:
Angenommen, Sie haben anfangs Features, dies ist jedoch zu viele, sodass Sie Ihr Modell tatsächlich auf d < p- Features anpassen möchten . Sie könnten d Ihrer Funktionen auswählen und den Rest fallen lassen. Wenn X unsere Merkmalsmatrix ist, entspricht dies der Verwendung von X D, wobei D ∈ { 0 , 1 } p × d genau die Spalten von X auswählt, die wir einschließen möchten. Dabei werden jedoch alle Informationen in den anderen Spalten ignoriert. Warum also nicht eine allgemeinere Dimensionsreduktion X V in Betracht ziehen, bei der V ∈ R ist ?p d<p d X XD D∈{0,1}p×d X XV ? Genau das macht PCA: Wir finden die MatrixVV∈Rp×d V so dass so viele Informationen wie möglich in X enthält . Nicht alle Linearkombinationen werden gleichermaßen erstellt. Es sei denn, unsere X- Matrix ist so niedrig, dass eine zufällige Menge von dXV X X d Spalten (mit hoher Wahrscheinlichkeit) den Spaltenraum aller Spalten abdecken kann, werden wir dies mit Sicherheit nicht genauso gut können wie mit allen anderenp Merkmalen. Einige Informationen gehen verloren, daher ist es wichtig, dass wir so wenig Informationen wie möglich verlieren. Bei PCA ist die "Information", die wir zu vermeiden versuchen, die Variation in den Daten.p
Aus diesem Grund beschränken wir uns auf lineare Transformationen der Prädiktoren. Der springende Punkt in diesem Anwendungsfall ist die Rechenzeit. Wenn wir Lust auf eine nichtlineare Dimensionsreduktion hätten könnten, könnten wir das Modell wahrscheinlich auch für alle X anpassen. PCA liegt also perfekt an der Schnittstelle zwischen schnellem Rechnen und Effektivität.X X
quelle
PCA reduziert Merkmale, während die Varianz / Information in den Originaldaten erhalten bleibt. Dies hilft dabei, die Berechnung zu ermöglichen, ohne die Ähnlichkeit der Daten mit der Realität zu verlieren.
quelle
PCA-Lösung
Achten Sie zuerst darauf, wenn Sie PCA für diesen Zweck verwenden. Wie ich in Beantwortung einer verwandten Frage schrieb, führt PCA nicht unbedingt zu einer Auswahl von Funktionen, die für die von Ihnen beabsichtigte Regression aussagekräftig sind (siehe auch Jolliffe 1982 ).
OP vorgeschlagene Lösung
Betrachten Sie nun den vorgeschlagenen alternativen Mechanismus:p
reduce the dimension of your feature vector to k dimensions by just choosing k of your features at random and eliminating the rest.
Nun wurden wir in der Problemstellung gebeten, diesen anzunehmendimension of your vector x is very large
. Nennen wir diese DimensionVorgeschlagene Lösung
quelle