2013-04-27 9 views

Antwort

23

PCA ist eine Möglichkeit herauszufinden, welche Merkmale wichtig sind, um die Varianz in einem Datensatz am besten zu beschreiben. Es wird am häufigsten verwendet, um die Dimensionalität eines großen Datensatzes zu reduzieren, so dass es praktischer wird, maschinelles Lernen anzuwenden, wenn die ursprünglichen Daten inhärent hoch dimensional sind (z. B. Bilderkennung).

PCA hat jedoch Einschränkungen, da es auf linearen Beziehungen zwischen Feature-Elementen beruht und oft unklar ist, welche Beziehungen vor dem Start bestehen. Da es auch Merkmalselemente "versteckt", die wenig zur Varianz in den Daten beitragen, kann es manchmal ein kleines, aber signifikantes Unterscheidungsmerkmal ausmerzen, das die Leistung eines maschinellen Lernmodells beeinflussen würde.

+1

Ich denke eine wichtige Anmerkung hier ist, dass PCA eine unbeaufsichtigte Technik ist, während Feature-Auswahl typischerweise (aber nicht immer) auf überwachte Probleme bezieht. Man kann PCA verwenden, um einen Datensatz zu beschreiben - der möglicherweise bestimmte Variablen durch hohe absolute Ladungen auf mehreren PCs hervorhebt - oder Hauptkomponenten an einem überwachten Modell zu werfen, um das Ausführen des Modells zu erleichtern. Im Allgemeinen ist PCA jedoch kein Merkmalselektionswerkzeug an sich. –

5

Sie können die Funktionsauswahl mit PCA vornehmen.

Hauptkomponentenanalyse (PCA) ist eine Technik, die

„verwendet eine orthogonale Transformation eines Satzes von Beobachtungen von möglicherweise korrelierten Variablen in einen Satz von Werten von unkorrelierten Variablen Hauptkomponenten genannt zu konvertieren.“

Die Frage, die PCA uns hilft, grundlegend zu antworten, ist diese: Welches dieser M Parameter erklären eine bedeutende Menge der Abweichung , die innerhalb des Datensatzes enthalten wird? PCA hilft im Wesentlichen bei der Anwendung einer 80-20 Regel: Kann eine kleine Teilmenge von Parametern (sagen wir 20%) 80% oder mehr der Variation in den Daten erklären?

(see here)

Aber es hat einige Nachteile: es ist empfindlich gegenüber Skalierung und mehr Gewicht auf die Daten mit höherer Größenordnung gibt. Datennormalisierung kann nicht immer die Lösung sein, wie hier erklärt:

http://www.simafore.com/blog/bid/105347/Feature-selection-with-mutual-information-Part-2-PCA-disadvantages

Es gibt andere Möglichkeiten Merkmalsauswahl zu tun:

Ein Merkmal Auswahlalgorithmus kann als Kombination einer Suche zu sehen Technik zum Vorschlagen neuer Merkmalsuntergruppen, zusammen mit einem Bewertungsmaß , das die verschiedenen Merkmalsuntergruppen bewertet. Der einfachste Algorithmus ist es, jede mögliche Teilmenge von Merkmalen zu testen, die die eine ist, die die Fehlerrate minimiert. Dies ist eine erschöpfende Suche des Raumes und ist rechenintensiv für alle außer die kleinsten Feature-Sets. Die Wahl der Bewertungsmaße stark beeinflusst den Algorithmus, und es sind diese Bewertungsmetriken, die zwischen den drei Hauptkategorien der Merkmalauswahl unterscheiden Algorithmen: Wrapper, Filter und eingebettete Methoden.

(see here)

In einigen Feldern können Merkmalsextraktion bestimmte Ziele vorschlagen: in der Bildverarbeitung, Sie Klecks, Rand oder Grat Erkennung durchzuführen möchten.

+0

Wie geht das auf die Frage der Featureauswahl über PCA ein? PCA generiert neue Funktionen, es hilft nicht sofort beim Auswählen von Features aus dem ursprünglichen Featurebereich. Der zweite Teil Ihrer Antwort betrifft die Merkmalsauswahl bei überwachten Problemen. Es ist unklar, ob OP danach sucht. PCA ist eine inhärent unbeaufsichtigte Technik, und die einzige Erwähnung der unüberwachten Merkmalsauswahl, die ich damit in Verbindung bringe, ist die Analyse der Hauptmerkmale: http://venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011 .pdf Ich fragte, wie man dies in R unter http://stackoverflow.com/q/32811659/1840471 implementieren kann. –

1

Nur um die Antwort von @Roger Rowland hinzuzufügen. Im Kontext des überwachten Lernens (Klassifikation, Regression) stelle ich mir PCA eher als einen "Merkmalstransformator" und nicht als einen Merkmalselektor vor.

PCA basiert auf dem Extrahieren der Achsen, auf denen die Daten die höchste Variabilität aufweisen. Obwohl sie Daten auf der neuen Basis "ausbreitet" und beim unüberwachten Lernen eine große Hilfe sein kann, gibt es keine Garantie, dass die neuen Achsen mit den diskriminierenden Merkmalen in einem überwachten Problem übereinstimmen.

Vereinfacht ausgedrückt, gibt es keine Garantie, dass Ihre wichtigsten Hauptkomponenten am informativsten sind, wenn es um die Vorhersage der abhängigen Variablen (z. B. Klassenlabel) geht.

This paper ist eine nützliche Quelle. Ein anderer relevanter kreuzvalidierter Link ist here.

2

Nur um die sehr guten Antworten oben hinzuzufügen. Der Unterschied besteht darin, dass PCA versuchen wird, die Dimensionalität zu reduzieren, indem untersucht wird, wie ein Merkmal der Daten in Bezug auf die anderen Merkmale ausgedrückt wird (lineare Abhängigkeit). Die Auswahl der Funktionen berücksichtigt stattdessen das Ziel. Es wird Ihre Eingangsvariablen in Bezug auf ihre Nützlichkeit für die Vorhersage des Zielwerts einstufen. Dies gilt für die univariate Merkmalauswahl. Multivariable Feature-Auswahl kann auch etwas tun, das als eine Form von PCA in dem Sinne betrachtet werden kann, dass einige der Features in der Eingabe verworfen werden. Aber nehmen Sie diese Analogie nicht zu weit.