Ich bin auf ein Szenario gestoßen, in dem ich 10 Signale / Person für 10 Personen (also 100 Samples) mit 14000 Datenpunkten (Dimensionen) habe, die ich an einen Klassifikator übergeben muss. Ich möchte die Dimensionalität dieser Daten reduzieren, und PCA scheint der richtige Weg zu sein. Ich konnte jedoch nur Beispiele für PCA finden, bei denen die Anzahl der Proben größer ist als die Anzahl der Dimensionen. Ich verwende eine PCA-Anwendung, die die PCs mit SVD findet. Wenn ich meinen 100x14000-Datensatz übergebe, werden 101 PCs zurückgegeben, sodass die überwiegende Mehrheit der Dimensionen offensichtlich ignoriert wird. Das Programm zeigt an, dass die ersten 6 PCs 90% der Varianz enthalten.
Ist es eine vernünftige Annahme, dass diese 101 PCs im Wesentlichen die gesamte Varianz enthalten und die verbleibenden Abmessungen vernachlässigbar sind?
Eine der Veröffentlichungen, die ich gelesen habe, behauptet, dass sie unter Verwendung eines ähnlichen (wenn auch geringfügig schlechteren) Datensatzes als meines in der Lage waren, 4500 Dimensionen auf 80 zu reduzieren und 96% der ursprünglichen Informationen beizubehalten. Das Papier überflog die Details der verwendeten PCA-Technik, es waren nur 3100 Proben verfügbar, und ich habe Grund zu der Annahme, dass weniger Proben verwendet wurden, um die PCA tatsächlich durchzuführen (um Verzerrungen aus der Klassifizierungsphase zu entfernen).
Fehlt mir etwas oder wird PCA auf diese Weise bei Datensätzen mit hoher Dimensionalität und geringer Stichprobengröße verwendet? Jede Rückmeldung wäre sehr dankbar.
quelle
Antworten:
Ich würde das Problem aus einem etwas anderen Blickwinkel betrachten: Wie komplex können Sie sich ein Modell mit nur 10 Probanden / 100 Proben leisten?
Und diese Frage beantworte ich normalerweise mit: viel weniger als 100 PCs. Beachten Sie, dass ich mit einer anderen Art von Daten arbeite (Schwingungsspektren), sodass die Dinge etwas variieren können. In meinem Fachgebiet werden üblicherweise 10 oder 25 oder 50 PCs verwendet, die aus O (1000) Spektren von O (10) Probanden berechnet werden.
Folgendes würde ich tun:
Schauen Sie sich die Varianz an, die von diesen 100 PCs abgedeckt wird. Normalerweise finde ich, dass nur wenige Komponenten wirklich zur Varianz in unseren Daten beitragen.
Ich bevorzuge PLS als Vorbehandlung für die Klassifizierung gegenüber PCA, da es bei der Sortierung von Richtungen mit großen Abweichungen, die der Klassifizierung nicht helfen, eine viel bessere Arbeit leistet (in meinem Fall können dies Fokusabweichungen sein, unterschiedliche Probendicken, ...). ..). Nach meiner Erfahrung erhalte ich oft ähnliche Klassifikatoren mit 10 latenten PLS-Variablen oder 25 bis 50 PCs.
Validierungsmuster müssen nur mit der aus dem Trainingssatz berechneten PCA-Rotation verarbeitet werden, da die Validierung sonst (und in extremen Fällen, wie Sie es höchstwahrscheinlich tun werden) eine große überoptimistische Verzerrung aufweisen kann.
Mit anderen Worten, wenn Sie eine Out-of-Bootstrap- oder Kreuzvalidierung durchführen, muss die PCA- oder PLS-Vorverarbeitung für jede Kombination aus Zug und Testset separat berechnet werden.
quelle
quelle
Das aus einem anderen Blickwinkel betrachten:
quelle