Bedeutung von PCA oder SVD im maschinellen Lernen
All dieser Zeit (speziell in der Netflix-Gewinnspiel), ich komme immer in diesem blog (oder leaderboard-forum), wo Sie erwähnen, wie durch die Anwendung einer einfachen SVD Schritt auf Daten, die Ihnen halfen bei der Verringerung der sparsity im Daten-oder im Allgemeinen verbessert die Leistung Ihres Algorithmus in der hand.
Ich bin versucht zu denken (seit langer Zeit), aber ich bin nicht in der Lage zu erraten, warum es so ist.
Im Allgemeinen werden die Daten in der hand die ich bekomme, ist sehr laut (das ist auch der spaßige Teil des bigdata -) und dann kenne ich einige grundlegende feature scaling Sachen wie log-transformation Zeug , bedeutet Normalisierung.
Aber wie sieht sowas SVD hilft.
So können sagen, ich habe eine riesige matrix in der user-Bewertung von Filmen..und dann in dieser matrix, die ich implementieren Sie eine version der recommendation system (z.B. collaborative filtering):
1) Without SVD
2) With SVD
wie funktioniert es hilft
Dank
InformationsquelleAutor der Frage Fraz | 2012-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
SVD wird nicht verwendet, um die Daten zu normieren, sondern, um loszuwerden, der redundanten Daten, das heißt, für die dimensionsreduktion. Zum Beispiel, wenn Sie zwei Variablen, eine ist Feuchtigkeits-index und ein weiteres ist die Wahrscheinlichkeit von Regen, dann ist Ihre Korrelation ist so hoch, dass das zweite keinen Beitrag leistet alle zusätzlichen Informationen, die nützlich für eine Klassifikation oder regression Aufgabe. Die Eigenwerte in SVD Ihnen helfen, festzustellen, welche Variablen sind am informativsten, und auf welche Sie verzichten können.
Die Weise, die es funktioniert, ist einfach. Sie führen SVD über Ihre Trainingsdaten (nennen wir es matrix A) zu erhalten, U, S und V*. Dann wird auf null gesetzt alle Werte von S, die weniger als einen bestimmten, beliebigen Schwellenwert (z.B. 0.1), nennen diese neue matrix S'. Dann erhalten Sie EINE' = US 'V* und die Option' als neue Trainingsdaten. Einige Ihrer features sind jetzt auf null gesetzt und kann entfernt werden, manchmal ohne Geschwindigkeitsverlust (abhängig von Ihren Daten und den Schwellenwert gewählt). Dies wird als k-abgeschnittene SVD.
SVD nicht hilft, mit sparsity obwohl, hilft dir nur, wenn features sind überflüssig. Zwei Funktionen können sowohl spärlich und informativ (relevant) für einen Vorhersage-Aufgabe, so dass Sie nicht entfernen können.
Mittels SVD, Sie gehen von n Funktionen k Funktionen, von denen jeder wird eine lineare Kombination der ursprünglichen
n
. Es ist eine dimensionsreduktion Schritt, genau wie die feature-Auswahl ist. Wenn redundante Merkmale vorhanden sind, obwohl, ein feature selection Algorithmus führt zu einer besseren Einstufung der Leistung als SVD je nach Datensatz (zum Beispiel maximale Entropie feature-Auswahl). Weka kommt mit einem ganzen Haufen von Ihnen.Finden Sie unter: http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Dimensionality_Reduction/Singular_Value_Decomposition
https://stats.stackexchange.com/questions/33142/what-happens-when-you-apply-svd-to-a-collaborative-filtering-problem-what-is-th
InformationsquelleAutor der Antwort Diego
Singular-Wert-ZERLEGUNG wird oft verwendet, um die Annäherung an eine matrix
X
durch eine niedrig-Rang matrixX_lr
:X = U D V^T
.D'
indem diek
größten singulären Werte und Einstellung, die anderen auf null.X_lr
durchX_lr = U D' V^T
.Matrix
X_lr
ist, dann ist die beste approximation vom Rangk
von der matrixX
für die Frobenius-norm (dem äquivalent derl2
-norm für Matrizen). Es ist rechnerisch effizient zu benutzen diese Darstellung, weil, wenn Ihre matrixX
istn
durchn
undk << n
können Sie speichern der niedrig-Rang-approximation mit nur(2n + 1)k
Koeffizienten (durch die SpeicherungU
D'
undV
).Dieser war oft verwendet in der matrix-Abschluss-Probleme (wie collaborative filtering), weil die wahre matrix von user-Bewertungen wird davon ausgegangen, dass niedrigen Rang (oder gut angenähert durch eine niedrig-Rang matrix). So, Sie wollen sich erholen, die wahre matrix durch Berechnung der besten niedrig-Rang-approximation von Ihren Daten-matrix. Allerdings gibt es jetzt bessere Möglichkeiten zur Wiederherstellung niedrig-Rang-Matrizen von lauten und fehlende Beobachtungen, nämlich die nukleare norm-Minimierung. Siehe zum Beispiel das Papier Die Kraft der konvexen relaxation: in der Nähe-optimale matrix-Abschluss von E. Candes und T. Tao.
(Hinweis: die algorithmen abgeleitet aus dieser Technik auch das speichern der SVD der geschätzten matrix, aber es wird anders berechnet).
InformationsquelleAutor der Antwort Edouard
PCA oder SVD, wenn Sie für die dimensionsreduktion, reduzieren Sie die Anzahl der Eingänge. Diese, neben der Einsparung rechnerische Kosten von Lern-und/oder Vorhersagen, können manchmal produzieren robuste Modelle, die nicht optimal im statistischen Sinne, aber haben eine bessere Leistung in lauten Bedingungen.
Mathematisch einfachere Modelle haben weniger Varianz, d.h. Sie sind weniger anfällig für überanpassung. Underfitting, of-Kurs, kann ein problem auch. Dies ist bekannt als bias-Varianz-dilemma. Oder, wie gesagt, in einfachen Worten von Einstein: die Dinge sollen so einfach wie möglich, aber nicht einfacher.
InformationsquelleAutor der Antwort Lehtinen