Verliert die Dimensionsreduzierung immer einige Informationen?


10

Verliert die Dimensionsreduzierung, wie der Titel schon sagt, immer einige Informationen? Betrachten Sie zum Beispiel PCA. Wenn die Daten, die ich habe, sehr spärlich sind, würde ich annehmen, dass eine "bessere Codierung" gefunden werden könnte (hängt dies irgendwie mit dem Rang der Daten zusammen?), Und nichts würde verloren gehen.


7
Nein, natürlich nicht: Einige der Singularwerte in PCA können beispielsweise echte Nullen sein. Dies hängt weniger mit der "Spärlichkeit" der Daten zusammen als vielmehr damit, ob sie die Dimensionen "ausfüllen", mit denen sie aufgezeichnet wurden.
whuber

1
OK, ich verstehe. Könnten Sie Ihren Kommentar als kurze Antwort schreiben (vielleicht sogar mit einem kleinen Beispiel, wenn Sie Zeit haben)?
Fragen

1
Stellen Sie sich den Fall vor, in dem Sie zweidimensionale Daten haben, bei denen der y-Wert für jeden Punkt '0' ist. Ihre erste Hauptkomponente ist die X-Achse, und Sie verlieren nichts, wenn Sie Ihre Daten in diese einzelne Dimension projizieren, da sie tatsächlich bereits eindimensional ist.
David Marx

Antworten:


9

Die Reduzierung der Dimensionalität verliert nicht immer Informationen. In einigen Fällen ist es möglich, die Daten in niederdimensionalen Räumen erneut darzustellen, ohne Informationen zu verwerfen.

Angenommen, Sie haben einige Daten, bei denen jeder Messwert zwei geordneten Kovariaten zugeordnet ist. Angenommen, Sie haben die Signalqualität (angezeigt durch Farbe Weiß = gut, Schwarz = schlecht) in einem dichten Raster von und Positionen relativ zu einem Emitter gemessen . In diesem Fall sehen Ihre Daten möglicherweise wie im linken Diagramm aus [* 1]:Qxy

Demo zur radialen Mittelwertbildung

Es ist zumindest oberflächlich gesehen ein zweidimensionales Datenelement: . Wir können jedoch a priori (basierend auf der zugrunde liegenden Physik) wissen oder annehmen, dass dies nur von der Entfernung vom Ursprung abhängt: r = . (Einige explorative Analysen könnten Sie auch zu dieser Schlussfolgerung führen, wenn selbst das zugrunde liegende Phänomen nicht gut verstanden wird.) Wir könnten dann unsere Daten als anstelle von umschreiben , was die Dimensionalität effektiv auf eine einzige Dimension reduzieren würde. Dies ist natürlich nur dann verlustfrei, wenn die Daten radialsymmetrisch sind, aber dies ist eine vernünftige Annahme für viele physikalische Phänomene.Q(x,y)x2+y2Q(r)Q(x,y)

Diese Transformation ist nicht linear (es gibt eine Quadratwurzel und zwei Quadrate!), Also unterscheidet sie sich etwas von der Art der Dimensionsreduktion, die von PCA durchgeführt wird, aber ich denke, es ist eine schöne Beispiel, wie Sie manchmal eine Dimension entfernen können, ohne Informationen zu verlieren.Q(x,y)Q(r)

Nehmen wir für ein anderes Beispiel an, Sie führen für einige Daten eine Singularwertzerlegung durch (SVD ist ein enger Verwandter der Analyse der Hauptkomponenten und häufig der zugrunde liegenden Eingeweide). SVD nimmt Ihre Datenmatrix und zerlegt sie in drei Matrizen, so dass . Die Spalten von U und V sind die linken bzw. rechten Singularvektoren, die einen Satz orthonormaler Basen für . Die diagonalen Elemente von (dh sind singuläre Werte, die effektiv Gewichte auf der ten Basismenge sind, die durch die entsprechenden Spalten von und (der Rest vonM = U S V T M S S i , i ) i U V S N x N N x N S U V M Q ( x , y )MM=USVTMSSi,i)iUVSist Nullen). Dies allein führt zu keiner Verringerung der Dimensionalität (tatsächlich gibt es jetzt 3 Matrizen anstelle der einzelnen Matrix, mit der Sie begonnen haben). Manchmal sind jedoch einige diagonale Elemente von Null. Dies bedeutet, dass die entsprechenden Basen in und nicht zur Rekonstruktion von benötigt werden und daher fallengelassen werden können. Angenommen,NxNNxNSUVMQ(x,y)Die obige Matrix enthält 10.000 Elemente (dh 100 x 100). Wenn wir eine SVD durchführen, stellen wir fest, dass nur ein Paar singulärer Vektoren einen Wert ungleich Null hat [* 2], sodass wir die ursprüngliche Matrix als Produkt von zwei Vektoren mit 100 Elementen (200 Koeffizienten, aber) neu darstellen können du kannst es tatsächlich ein bisschen besser machen [* 3]).

Für einige Anwendungen wissen wir (oder gehen zumindest davon aus), dass die nützlichen Informationen von Hauptkomponenten mit hohen Singularwerten (SVD) oder Belastungen (PCA) erfasst werden. In diesen Fällen könnten wir die singulären Vektoren / Basen / Hauptkomponenten mit kleineren Belastungen verwerfen, selbst wenn sie nicht Null sind, basierend auf der Theorie, dass diese eher störendes Rauschen als ein nützliches Signal enthalten. Ich habe gelegentlich gesehen, dass Leute bestimmte Komponenten aufgrund ihrer Form ablehnen (z. B. ähnelt sie einer bekannten Quelle für additives Rauschen), unabhängig von der Belastung. Ich bin mir nicht sicher, ob Sie dies als Informationsverlust betrachten würden oder nicht.

Es gibt einige gute Ergebnisse zur informationstheoretischen Optimalität von PCA. Wenn Ihr Signal Gaußsch ist und durch additives Gaußsches Rauschen verfälscht wird, kann PCA die gegenseitige Information zwischen dem Signal und seiner Version mit reduzierter Dimensionsreduzierung maximieren (vorausgesetzt, das Rauschen weist eine identitätsähnliche Kovarianzstruktur auf).


Fußnoten:

  1. Dies ist ein kitschiges und völlig nicht-physisches Modell. Es tut uns leid!
  2. Aufgrund der Ungenauigkeit des Gleitkommas sind einige dieser Werte stattdessen nicht ganz Null.
  3. Bei weiterer Betrachtung sind in diesem speziellen Fall die beiden singulären Vektoren um ihr Zentrum gleich UND symmetrisch, so dass wir tatsächlich die gesamte Matrix mit nur 50 Koeffizienten darstellen könnten. Beachten Sie, dass der erste Schritt automatisch aus dem SVD-Prozess herausfällt. Die zweite erfordert eine gewisse Inspektion / einen Vertrauenssprung. (Wenn Sie dies in Bezug auf PCA-Scores berücksichtigen möchten, ist die Score-Matrix nur aus der ursprünglichen SVD-Zerlegung; ähnliche Argumente für Nullen, die überhaupt nicht beitragen, gelten).US

Ich denke nicht, dass Ihre Grafik richtig ist. 1) Es ist eine Ellipse, kein Kreis, also ändere basierend auf dem Winkel mit den Achsen. Dies kann jedoch ein Artefakt sein. 2) Eine PCA, bei der einige der Eigenwerte 0 sind, zeigt Kollinearität in den Daten an; Dies wäre eine Handlung, die eine gerade Linie ist, keine kugelförmige Beule. 3) Im wirklichen Leben sind Daten sowieso nie perfekt symmetrisch. I(r)
Hong Ooi

Beachten Sie insbesondere, dass in Ihrem Beispiel . Dies ist eine nichtlineare Kombination der Variablen, daher ist sie nicht relevant, wenn es um PCA geht (die lineare Kombinationen in den Daten erkennen würde ). r=(x2+y2)
Hong Ooi

1
Matt, meine Frage war wirklich so: Sie zeigen uns ein Bild ohne Beschreibung oder Referenz und bezeichnen es als "Daten": Ich würde gerne wissen, in welchem ​​Sinne Sie es als Daten betrachten. Ihr Kommentar verwirrt dieses Problem, da eine "Heatmap" -Darstellung normalerweise keine Daten sind, sondern aus Daten erstellt wird. Wenn es sich beispielsweise um unregelmäßige 2D-Punktdaten handelt und Sie eine radialsymmetrische Dichte an sie anpassen, könnte das Bild , wie Sie argumentieren, als eindimensional ausgelegt werden, aber es wäre keine verlustfreie Dimensionsreduzierung der Daten .
whuber

1
Vielleicht hätte ich stattdessen "Gitter" oder "Raster" sagen sollen. Ich stellte mir eine Situation vor, in der Daten auf einem Gitter gesammelt werden und jeder Gitterpunkt einem (skalaren) Wert zugeordnet ist, die Werte jedoch nicht unbedingt die Lichtintensität wie in einem (fotografischen) Bild sind. Das heißt, ich rocke diese Antwort eindeutig nicht - lassen Sie mich versuchen, sie in etwas Kohärenteres zu bearbeiten!
Matt Krause

2
+1: Die Änderungen machen Ihre Punkte viel klarer. Vielen Dank für den zusätzlichen Aufwand!
whuber

4

Ich denke, die Frage hinter Ihrer Frage lautet "Was macht Informationen aus?". Das ist eine gute Frage.

Grammatiktechnik:

Verliert PCA immer Informationen? Nee. Verliert es manchmal Informationen? Darauf kannst du wetten. Sie können die Originaldaten aus Komponenten rekonstruieren. Wenn immer Informationen verloren gehen würden, wäre dies nicht möglich.

Dies ist nützlich, da wichtige Informationen häufig nicht verloren gehen, wenn Sie sie zur Reduzierung der Dimension Ihrer Daten verwenden. Wenn Sie Daten verlieren, sind dies häufig die Daten mit der höheren Frequenz, die häufig weniger wichtig sind. Die großen allgemeinen Trends werden in den Komponenten erfasst, die den größeren Eigenwerten zugeordnet sind.


4

Nein. Wenn eine oder mehrere der Dimensionen einer Matrix eine Funktion der anderen Dimensionen sind, verliert die geeignete Dimensionsreduktionstechnik keine Informationen.n×p

Im einfachsten Fall, wenn eine Dimension eine lineare Kombination der anderen ist, kann die Dimensionalität um eine reduziert werden, ohne dass Informationen verloren gehen - da die abgelegte Dimension bei Bedarf aus den verbleibenden Dimensionen neu erstellt werden kann.

Betrachten Sie diesen dreidimensionalen Fall, in dem x3 eine exakte lineare Kombination von x1 und x2 ist. Es ist nicht offensichtlich, wenn man die Originaldaten betrachtet, obwohl klar ist, dass x3 mit den beiden anderen verwandt ist:

Geben Sie hier die Bildbeschreibung ein

Wenn wir uns jedoch die Hauptkomponenten ansehen, ist die dritte Null (innerhalb des numerischen Fehlers).

Geben Sie hier die Bildbeschreibung ein

Die Darstellung der ersten beiden Hauptkomponenten ist dieselbe wie die Darstellung von x1 gegen x2, nur gedreht (ok, nicht so offensichtlich, wie ich meinte, ich werde versuchen, es später besser zu erklären) :

Geben Sie hier die Bildbeschreibung ein

Wir haben die Dimensionalität um eins reduziert, aber alle Informationen nach vernünftiger Definition beibehalten.

Dies geht auch über die lineare Dimensionsreduktion hinaus, obwohl die Darstellung natürlich komplexer wird. Der Punkt ist, dass die Gesamtantwort "Nein" ist, nicht wenn einige der Dimensionen Funktionen einer Kombination der anderen sind.

R-Code:

library(GGally)


n <- 10^3
dat <- data.frame(x1=runif(n, 0, 3), x2=rnorm(n))
dat$x3 <- with(dat, x1 + x2)

ggpairs(dat)

pc <- princomp(dat)
plot(pc)

par(mfrow=c(1,2))
with(dat, plot(dat$x1, dat$x2, col="red", main="Original data", bty="l"))
with(pc, plot(scores[,1], scores[,2], col="blue", main="Scores from principal components(\n(rotated)", bty="l"))
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.