Auf wie viele Dimensionen soll beim PCA reduziert werden?

12

Wie wählt man K für PCA? K ist die Anzahl der Dimensionen, auf die projiziert werden soll. Die einzige Voraussetzung ist, nicht zu viele Informationen zu verlieren. Ich verstehe, dass es von den Daten abhängt, aber ich suche eher einen einfachen allgemeinen Überblick darüber, welche Merkmale bei der Auswahl von K zu berücksichtigen sind.

pr338
quelle
Hängt vom tolerierbaren Datenverlust und auch von der Problemstellung ab!
Dawny33
Ich stimme den beiden folgenden Antworten zu. Wissen Sie jedoch, dass es einen einfachen Weg gibt, den Informationsverlust zu quantifizieren, dh mithilfe der SVD-Diagonale der Kovarianzmatrix?
Yuqian

Antworten:

13

Nach der Ausführung des PCA-Algorithmus erhalten Sie die Hauptkomponenten, sortiert nach der Menge der darin enthaltenen Informationen. Wenn Sie das gesamte Set behalten, gehen keine Informationen verloren. Wenn Sie sie einzeln entfernen und wieder auf den ursprünglichen Bereich projizieren, können Sie den Informationsverlust berechnen. Sie können diesen Informationsverlust in Abhängigkeit von der Anzahl der entfernten Hauptkomponenten darstellen und prüfen, ob ein 'Ellbogen' sinnvoll ist. Vieles davon hängt jedoch von Ihrem Anwendungsfall ab.

Jan van der Vegt
quelle
(+1) Ja, so einfach ist das :)
Dawny33
3

Normalerweise überprüfe ich den Prozentsatz der Informationen, die der K-Wert enthält. Sagen wir aus 8 Feldern, 2 von ihnen enthalten 90% der Informationen. Dann macht es keinen Sinn, die anderen 6 oder 5 Felder einzuschließen. Wenn Sie die neuesten Daten kennen, habe ich von 768 Eingaben nur 250 verwendet, was meine Genauigkeit von 83 auf 96% erhöht hat. Die Tatsache, dass mehr Dimensionalität mehr Problem bringt. Also schneide sie ab. Normalerweise nehme ich nur K, die nur 90% der Informationen besitzen, und das funktioniert bei mir.

Amanuel Negash
quelle
Hallo .. Ich habe ein ähnliches Problem, bei dem ich x% der Informationen verwenden möchte und nicht sicher bin, wie das geht. Ich beabsichtige, die IPCA zu verwenden, um dies zu tun. Ich kann n_components = None belassen, aber wie entscheide ich dann, welche Funktionen x% der Daten enthalten?
Arsenal Fanatic