Was kann dazu führen, dass PCA die Ergebnisse eines Klassifikators verschlechtert?

27

Ich habe einen Klassifikator, für den ich eine Kreuzvalidierung durchführe, und ungefähr hundert Features, für die ich eine Vorauswahl vornehme, um optimale Kombinationen von Features zu finden. Ich vergleiche dies auch mit der Durchführung der gleichen Experimente mit PCA, bei denen ich die potenziellen Merkmale nehme, SVD anwende, die ursprünglichen Signale in den neuen Koordinatenraum transformiere und die Top- Merkmale in meinem Vorwärtsauswahlprozess verwende.k

Meine Intuition war, dass PCA die Ergebnisse verbessern würde, da die Signale "informativer" wären als die ursprünglichen Merkmale. Führt mich mein naives Verständnis von PCA in Schwierigkeiten? Kann jemand einige der häufigsten Gründe dafür nennen, warum PCA die Ergebnisse in bestimmten Situationen verbessern, in anderen Situationen jedoch verschlechtern kann?

Dolan Antenucci
quelle
Kann Ihre Frage folgendermaßen zusammengefasst werden: "Was ist besser - um Klassifikatoren auf der Grundlage der ursprünglichen Variablen oder einiger Hauptkomponenten zu erstellen, die daraus extrahiert wurden?"
TTNPHNS
1
Ich würde eher sagen: "Gibt es Situationen, in denen es besser ist, die ursprünglichen Variablen zu verwenden, als ein paar Hauptkomponenten, die daraus extrahiert wurden?"
Dolan Antenucci
1
Es gibt viele Klassifikationstechniken. Wenn Sie beispielsweise eine Diskriminanzanalyse durchführen, empfehle ich Ihnen, diesen Beitrag zu lesen (einschließlich meines eigenen Kommentars dort).
TTNPHNS
1
Was meinst du mit 'Ergebnisse eines Klassifikators'? Wenn die Proportionen korrekt klassifiziert sind, handelt es sich um eine diskontinuierliche, unkorrekte Bewertungsregel, dh eine Genauigkeitsbewertung, die durch ein Scheinmodell optimiert wird. Ich würde vorschlagen, zunächst eine Bewertungsregel mit der richtigen Genauigkeit zu verwenden.
Frank Harrell
1
Ein bisschen zu spät für die Party, aber: Das erste, was ich noch einmal überprüfen würde, ist, dass die Validierungsergebnisse der Vorauswahl tatsächlich in unabhängigen Fällen erhalten wurden. Andernfalls würden Sie wahrscheinlich einer enormen optimistischen Tendenz ausgesetzt sein.
cbeleites unterstützt Monica

Antworten:

29

Stellen Sie sich einen einfachen Fall vor, der aus einem großartigen und unterbewerteten Artikel "Ein Hinweis zur Verwendung von Hauptkomponenten in der Regression" hervorgeht .

Angenommen, Sie haben nur zwei (skalierte und nicht gemittelte) Merkmale. Bezeichnen Sie diese mit und mit einer positiven Korrelation von 0,5, ausgerichtet in , und einer dritten Antwortvariablen Sie klassifizieren möchten. Angenommen, die Klassifikation von wird vollständig durch das Vorzeichen von .x 2 x y y x 1 - x 2x1x2XYYx1x2

Das Ausführen von PCA auf führt zu den neuen (nach Varianz geordneten) Features , da . Wenn Sie also Ihre Dimension auf 1 reduzieren, dh die erste Hauptkomponente, werfen Sie die exakte Lösung für Ihre Klassifizierung weg![ x 1 + x 2 , x 1 - x 2 ] Var ( x 1 + x 2 ) = 1 + 1 + 2 ρ > Var ( x 1 - x 2 ) = 2 - 2 ρX[x1+x2,x1x2]Var(x1+x2)=1+1+2ρ>Var(x1x2)=22ρ

Das Problem tritt auf, weil PCA für agnostisch ist . Leider kann man in die PCA aufnehmen, da dies zu Datenlecks führt.YYY


Datenverlust tritt auf, wenn Ihre Matrix unter Verwendung der fraglichen Zielvorhersagen konstruiert wird, sodass Vorhersagen außerhalb der Stichprobe unmöglich sind.X

Zum Beispiel: In Finanzzeitreihen ist der Versuch, den europäischen Tagesabschluss, der um 11:00 Uhr EST stattfindet, unter Verwendung amerikanischer Tagesabschlusszeiten, um 16:00 Uhr EST, vorherzusagen, ein Datenverlust, seitdem der Amerikaner geschlossen hat , die Stunden später auftreten, haben die Preise der europäischen Abschlüsse einbezogen.

Cam.Davidson.Pilon
quelle
2
Was ist "Datenverlust"?
user603
@ Wayne teuer zu haha
Cam.Davidson.Pilon
(-1) um Verwirrung zu stiften: (1) PCA ist unbeaufsichtigt, daher wird Y niemals in die Berechnung der Transformation einbezogen. Die entsprechende überwachte Technik ist PLS, bei der sowohl X als auch Y verwendet werden. (2) Datenlecks (wie in: Testen mit statistisch abhängigen Daten) ergeben sich nicht per se aus der Verwendung einer überwachten Methode. Im Gegenteil: Es tritt bei PCA genauso auf wie bei PLS, wenn Sie die Regel nicht befolgen, die ab dem ersten Analyseschritt, der mehr als einen Fall verwendet (z. B. Zentrieren, Skalieren, PCA / PLS-Projektion), für alle Berechnungen gelten muss
Erfolgt
... für jedes Ersatzmodell neu berechnet. Die Ergebnisse dieser Berechnungen können dann auf die Testdaten angewendet werden, dh das von den Trainingsdaten erhaltene Zentrum abziehen, um die von PCA auf den Trainingsfällen erhaltene Drehung drehen usw.
cbeleites unterstützt Monica
Was das Beispiel betrifft: Zeitreihen sind besonders schwierig, da das, was einen unabhängigen Fall ausmacht, sehr stark von der Anwendung abhängt. Siehe zB stats.stackexchange.com/questions/76376/…
cbeleites unterstützt Monica
23

Es gibt eine einfache geometrische Erklärung. Versuchen Sie das folgende Beispiel in R und erinnern Sie sich, dass die erste Hauptkomponente die Varianz maximiert.

library(ggplot2)

n <- 400
z <- matrix(rnorm(n * 2), nrow = n, ncol = 2)
y <- sample(c(-1,1), size = n, replace = TRUE)

# PCA helps
df.good <- data.frame(
    y = as.factor(y), 
    x = z + tcrossprod(y, c(10, 0))
)
qplot(x.1, x.2, data = df.good, color = y) + coord_equal()

# PCA hurts
df.bad <- data.frame(
    y = as.factor(y), 
    x = z %*% diag(c(10, 1), 2, 2) + tcrossprod(y, c(0, 8))
)
qplot(x.1, x.2, data = df.bad, color = y) + coord_equal()

PCA hilft PCA hilft

Die Richtung der maximalen Varianz ist horizontal und die Klassen sind horizontal getrennt.

PCA tut weh PCA tut weh

Die Richtung der maximalen Varianz ist horizontal, aber die Klassen sind vertikal getrennt

vqv
quelle
... und in Beispiel 2 würde das überwachte Analogon PLS tatsächlich helfen.
cbeleites unterstützt Monica
3

Ich sehe, dass die Frage bereits eine akzeptierte Antwort hat, wollte aber dieses Papier teilen , in dem es um die Verwendung von PCA für die Feature-Transformation vor der Klassifizierung geht .

Die Nachricht zum Mitnehmen (die in der Antwort von @ vqv wunderschön dargestellt wird) lautet:

Die Hauptkomponentenanalyse (PCA) basiert auf der Extraktion der Achsen, auf denen die Daten die höchste Variabilität aufweisen. Obwohl PCA Daten auf der neuen Basis „verbreitet“ und beim unbeaufsichtigten Lernen eine große Hilfe sein kann, gibt es keine Garantie dafür, dass die neuen Achsen mit den Unterscheidungsmerkmalen in einem (überwachten) Klassifizierungsproblem übereinstimmen.

Wenn Sie sich Abschnitt 4 ansehen, sehen Sie sich die Ergebnisse der Experimente an . Sie vergleichen die Klassifizierungsgenauigkeiten mit 1) den Originalmerkmalen, 2) den PCA-transformierten Merkmalen und 3) der Kombination aus beiden, was für mich neu war.

Meine Schlussfolgerung:

Mithilfe von PCA-basierten Feature-Transformationen können die Informationen einer großen Anzahl von Features in einer begrenzten Anzahl von Komponenten zusammengefasst werden, dh in linearen Kombinationen der ursprünglichen Features. Die Hauptkomponenten sind jedoch oft schwer zu interpretieren (nicht intuitiv), und wie die empirischen Ergebnisse in diesem Artikel zeigen, verbessern sie in der Regel die Klassifizierungsleistung nicht.

PS: Ich stelle fest, dass eine der Beschränkungen des Papiers, die aufgeführt wurden, die Tatsache war, dass die Autoren die Leistungsbewertung der Klassifikatoren nur auf „Genauigkeit“ beschränkten, was ein sehr voreingenommener Leistungsindikator sein kann.

Zhubarb
quelle
3

Nehmen wir einen einfachen Fall mit 3 unabhängigen Variablen und der Ausgabe und nehmen wir nun an, dass und Sie in der Lage sein sollten, ein 0-Fehlermodell zu erhalten. y x 3 = yx1,x2,x3yx3=y

Nehmen wir nun an, dass in der Trainingsmenge die Variation von sehr klein ist und damit auch die Variation von . x 3yx3

Wenn Sie nun PCA ausführen und nur zwei Variablen auswählen, erhalten Sie eine Kombination aus und . Die Information von , die die einzige Variable war, die erklären konnte, geht verloren.x 2 x 3 yx1x2x3y

Donbeo
quelle