Was ist Dimensionsreduktion? Was ist der Unterschied zwischen Merkmalsauswahl und -extraktion?


58

Aus Wikipedia,

Dimensionsreduktion oder Dimensionsreduktion ist der Prozess der Reduzierung der Anzahl der betrachteten Zufallsvariablen und kann in Merkmalsauswahl und Merkmalsextraktion unterteilt werden.

Was ist der Unterschied zwischen Merkmalsauswahl und Merkmalsextraktion?

Was ist ein Beispiel für eine Dimensionsreduktion bei einer Natural Language Processing-Aufgabe?

Antworten:


51

Einfach gesagt:

  • Featureauswahl: Sie wählen eine Teilmenge der ursprünglichen Featureauswahl aus. während
  • Feature-Extraktion: Sie erstellen einen neuen Satz von Features aus dem ursprünglichen Feature-Set.

Beispiele für Merkmalsextraktion: Extraktion von Konturen in Bildern, Extraktion von Digrammen aus einem Text, Extraktion von Phonemen aus der Aufnahme von gesprochenem Text usw.

Die Merkmalsextraktion umfasst eine Transformation der Merkmale, die häufig nicht umkehrbar ist, da beim Reduzieren der Dimensionalität einige Informationen verloren gehen.


2
Beide fallen in die Kategorie Feature-Engineering, da Features manuell erstellt oder ausgewählt werden. Die Reduzierung der Dimensionalität beinhaltet normalerweise eine Änderung der Basis oder eine andere mathematische Repräsentation der Daten
ragingSloth

1
@ragingSloth, ich denke, das erste ist definitiv die Featureauswahl - und nicht das Feature-Engineering. Während Beispiele für Bild- und Textverarbeitung in der Tat Feature-Engineering zu sein scheinen
Alexey Grigorev

So wie ich es gefunden habe, können Sie für einige Feature-Extraktionen immer noch die ursprünglichen Dimensionen ungefähr rekonstruieren. Bei der Featureauswahl erfolgt jedoch keine Rekonstruktion, da Sie die überflüssigen Dimensionen entfernt haben.
Bob

16

Bei der Dimensionsreduzierung wird in der Regel eine Basis oder mathematische Darstellung ausgewählt, in der Sie die meisten, jedoch nicht alle Abweichungen in Ihren Daten beschreiben können, um die relevanten Informationen zu erhalten und gleichzeitig die für die Darstellung erforderliche Informationsmenge zu reduzieren. Es gibt eine Vielzahl von Techniken für diese einschließlich , aber nicht darauf beschränkt zu tun PCA, ICAund Matrix Feature Factorization. Dadurch werden vorhandene Daten auf die am meisten diskriminierenden Komponenten reduziert. Auf diese Weise können Sie die meisten Informationen in Ihrem Datensatz mit weniger, mehr diskriminierenden Merkmalen darstellen.

Feature Selection (Merkmalsauswahl) ist die manuelle Auswahl von Merkmalen, die stark voneinander abhängen. Dies hat viel mehr mit Feature-Engineering als mit Analyse zu tun und erfordert vom Datenwissenschaftler erheblich mehr Arbeit. Es erfordert ein Verständnis dafür, welche Aspekte Ihres Datensatzes für die von Ihnen getroffenen Vorhersagen wichtig sind und welche nicht. Beim Extrahieren von Features werden normalerweise neue Features generiert, die aus vorhandenen Features zusammengesetzt sind. Beide Techniken fallen in die Kategorie des Feature Engineerings. Im Allgemeinen ist Feature-Engineering wichtig, wenn Sie die besten Ergebnisse erzielen möchten, da dabei Informationen erstellt werden, die möglicherweise nicht in Ihrem Datensatz vorhanden sind, und der Rauschabstand erhöht wird.


2
Ich stimme größtenteils mit einer Genauigkeit überein: Die Funktionsauswahl muss nicht von Hand erfolgen, sondern kann automatisch erfolgen. Siehe zum Beispiel die Lasso-Methode ( en.wikipedia.org/wiki/Least_squares#Lasso_method ).
Juni,

Ich bin mit Ihrer Dimensionality ReductionKlausel einverstanden , unterscheide mich aber ein wenig in der Feature EngineeringVerwendung - was von dem, was ich gesehen habe, nur ist Feature Extraction : Feature Selectionwird separat betrachtet. Es ist nur ein Unterschied in der Terminologie.
Javadba

7

Wie in @damienfrancois geht es bei der Auswahl von Antwortfunktionen um die Auswahl einer Teilmenge von Funktionen. In NLP würde es sich also um die Auswahl einer Reihe spezifischer Wörter handeln (das typische Merkmal in NLP ist, dass jedes Wort ein Merkmal darstellt, dessen Wert der Häufigkeit des Wortes oder einem anderen Gewicht entspricht, das auf TF / IDF oder ähnlichem basiert).

Die Dimensionsreduzierung ist die Einführung eines neuen Merkmalsraums, in dem die ursprünglichen Merkmale dargestellt werden. Der neue Raum hat eine geringere Dimension als der ursprüngliche Raum. Im Fall von Text wäre ein Beispiel der Hashing-Trick, bei dem ein Text auf einen Vektor von wenigen Bits (z. B. 16 oder 32) oder Bytes reduziert wird. Das Erstaunliche ist, dass die Geometrie des Raums erhalten bleibt (mit genügend Bits), sodass die relativen Abstände zwischen Dokumenten dieselben bleiben wie im ursprünglichen Raum, sodass Sie Standardtechniken für maschinelles Lernen anwenden können, ohne sich mit ungebundenen (und riesigen Mengen) zu befassen von) Abmessungen im Text gefunden.


5

Bei der Merkmalsauswahl geht es darum, einige Merkmale auf der Grundlage einer statistischen Bewertung auszuwählen, bei der Merkmalsextraktion werden jedoch Techniken verwendet, um Informationen der zweiten Schicht aus den Daten zu extrahieren, z. B. interessante Frequenzen eines Signals unter Verwendung einer Fourier-Transformation.

Bei der Dimensionalitätsreduktion geht es darum, Daten in einen niedrigdimensionalen Raum zu verwandeln, in dem die Daten ihre euklidische Struktur beibehalten, jedoch nicht unter dem Fluch der Dimensionalität leiden. Angenommen, Sie extrahieren einige Wortmerkmale aus einem Datensatz, in dem jedes Dokument als Punkt im n-dimensionalen Raum modelliert werden kann und n zu groß ist (ein Spielzeugbeispiel). In diesem Fall arbeiten viele Algorithmen nicht entsprechend der Abstandsverzerrung des hochdimensionalen Raums. Jetzt müssen Sie die Dimensionalität reduzieren, indem Sie entweder die informativsten Features auswählen oder sie mithilfe von Dimensionalitätsreduktionsmethoden, z. B. PCA, LLE usw., in eine niedrig dimensionierte Mannigfaltigkeit umwandeln.[x1,...,xn]


Von den verfügbaren Antworten passt diese am besten zu dem, was ich in mehreren Data Science- und ML Platform-Teams gesehen habe
javadba

3

Um Damiens Antwort zu vervollständigen, ist ein Beispiel für die Reduzierung der Dimensionalität in NLP ein Themenmodell , bei dem Sie das Dokument durch einen Vektor darstellen, der die Gewichtung der konstituierenden Themen angibt.



2

A1. Was ist Dimensionsreduzierung? Wenn Sie an Daten in einer Matrix denken, in der Zeilen Instanzen und Spalten Attribute (oder Features) sind, ordnet die Dimensionsreduzierung diese Datenmatrix einer neuen Matrix mit weniger Spalten zu. Wenn Sie sich zur Visualisierung jede Matrixspalte (Attribut) als Dimension im Feature-Space vorstellen, ist die Dimensionsreduktion die Projektion von Instanzen aus dem höherdimensionalen Raum (mehr Spalten) in einen tieferdimensionalen Unterraum (weniger Spalten). Dimensionalitätsreduktion ist Subraumprojektion Ein typisches Ziel für diese Transformation besteht darin, (1) Informationen in der Datenmatrix zu erhalten und gleichzeitig den Rechenaufwand zu verringern; (2) Verbesserung der Trennbarkeit verschiedener Datenklassen.

A2. Dimensionsreduktion als Merkmalsauswahl oder Merkmalsextraktion: Ich verwende den allgegenwärtigen Iris-Datensatz , der wohl die „Hallo-Welt“ der Datenwissenschaft ist. Kurz gesagt, der Iris-Datensatz verfügt über 3 Klassen und 4 Attribute (Spalten). Ich werde die Merkmalsauswahl und -extraktion für die Aufgabe der Reduzierung der Iris-Dataset-Dimensionalität von 4 auf 2 veranschaulichen.

Ich berechne die paarweise Kovarianz dieses Datensatzes mit der Bibliothek in Python namens seaborn. Der Code lautet: sns.pairplot (Iris, Farbton = "Spezies", Markierungen = ["o", "s", "D"]) Die Zahl, die ich erhalte, ist, dass Iris-Paar-Handlung ich das Attributpaar (2 Dimensionen) auswählen kann , das bereitgestellt wird mir die größte Trennung zwischen den 3 Klassen (Arten) im Iris-Datensatz. Dies wäre ein Fall der Merkmalsauswahl.

Als Nächstes folgt die Feature-Extraktion. Hier projiziere ich den 4-dimensionalen Merkmalsraum von Iris auf einen neuen 2-dimensionalen Unterraum, der nicht achsenausgerichtet mit dem ursprünglichen Raum ist. Dies sind neue Attribute. Sie basieren typischerweise auf der Verteilung im ursprünglichen hochdimensionalen Raum. Die bekannteste Methode ist die Hauptkomponentenanalyse, bei der Eigenvektoren im ursprünglichen Raum berechnet werden. PCA mit SVD Offensichtlich sind wir nicht darauf beschränkt, nur eine lineare und globale Projektion auf einen auf Eigenvektoren basierenden Unterraum zu verwenden. Wir können auch nichtlineare Projektionsmethoden verwenden. Hier ist ein Beispiel für eine nichtlineare PCA mit neuronalen Netzen. nichtlineare PCA unter Verwendung von NN Die Attribute (Dimensionen) im letzten Beispiel werden extrahiertvon den ursprünglichen 4 Attributen mit neuronalen Netzen. Mit diesem pca-Methodencode können Sie mit verschiedenen PCA-Varianten für Iris-Datasets experimentieren .

Zusammenfassung: Während die Methoden zum Extrahieren von Features in der Leistung der Featureauswahl überlegen zu sein scheinen, wird die Auswahl von der Anwendung vorausgesetzt. Die Attribute aus der Merkmalsextraktion verlieren in der Regel ihre physikalische Interpretation, was je nach vorliegender Aufgabe ein Problem sein kann oder nicht. Wenn Sie beispielsweise eine sehr teure Datenerfassungsaufgabe mit kostspieligen Sensoren entwerfen und die Attribute (Anzahl der verschiedenen Sensoren) einsparen müssen, möchten Sie eine kleine Pilotprobe mit allen verfügbaren Sensoren erfassen und dann die Sensoren auswählen, die diese enthalten sind am informativsten für die Big-Data-Erfassungsaufgabe.


1

Extrahiert aus dem praktischen maschinellen Lernen mit Scikit-Learn & Tensorflow

  1. Datenbereinigung: Fixieren oder entfernen Sie Ausreißer (optional). Ergänzen Sie fehlende Werte (z. B. mit Null, Mittelwert, Median…) oder löschen Sie deren Zeilen (oder Spalten).
  2. Featureauswahl (optional): Löschen Sie die Attribute, die keine nützlichen Informationen für die Aufgabe liefern.
  3. Gegebenenfalls Feature-Engineering: Diskretisieren Sie fortlaufende Features. Zerlegen Sie Features (z. B. kategorial, Datum / Uhrzeit usw.). Fügen Sie vielversprechende Transformationen von Features hinzu (z. B. log (x), sqrt (x), x ^ 2 usw.). Kombinieren Sie Funktionen zu vielversprechenden neuen Funktionen.
  4. Feature-Skalierung: Features standardisieren oder normalisieren.

0

Einige gute Antworten auf diese Frage, insbesondere die Antwort von @ damienfrancois, fasst die allgemeine Idee sehr gut zusammen.

Ich sehe jedoch keine Beispiele für Feature-Engineering für relationale Daten oder Zeitreihendaten. In diesem Fall extrahieren Datenwissenschaftler im Allgemeinen statistische Muster über Beziehungen und Zeiträume hinweg. Um beispielsweise vorherzusagen, was Kunden in Zukunft in einer E-Commerce-Datenbank erwarten, können Mengen wie der durchschnittliche historische Kaufbetrag oder die Häufigkeit früherer Käufe extrahiert werden.

Ich habe einen Artikel zu diesem Thema geschrieben, der mit mehreren Beispielen ausführlicher beschrieben wird: https://www.featurelabs.com/blog/feature-engineering-vs-feature-selection/


0

Lassen Sie mich in umgekehrter Reihenfolge beginnen, welche Merkmale extrahiert werden und warum eine Merkmalsauswahl und Dimensionsreduzierung erforderlich ist.

Beginnend mit der Verwendung der Merkmalsextraktion, die hauptsächlich zu Klassifizierungszwecken dient. Bei der Klassifizierung wird entschieden, zu welcher Kategorie ein bestimmtes Objekt gehört. Es besteht aus zwei Phasen: i) Trainingsphase, in der anhand der Daten oder Objekte ihre Eigenschaften mithilfe eines Prozesses (Merkmalsextraktion) gelernt werden. Ii) Testphase, in der das unbekannte Objekt anhand der in der vorherigen (Trainings-) Phase gelernten Merkmale klassifiziert wird.

Die Merkmalsextraktion ist, wie der Name vermuten lässt, angesichts des Ziels der Daten, das zugrunde liegende Muster zu finden. Dieses zugrunde liegende Muster, das als Merkmal bezeichnet wird, entspricht den jeweiligen Daten. Für die Feature-Extraktion stehen verschiedene Methoden zur Verfügung, z. B. Support Vector Machine (SVM).

Jetzt sollte die Merkmalsextraktion Merkmale erzeugen, die sein sollten

  • robust
  • diskriminierend
  • optimale Ausstattung

Merkmalsauswahl: Ein bestimmter Datensatz kann entweder durch ein einzelnes Merkmal oder einen Satz von Merkmalen dargestellt werden. Im Klassifizierungsprozess wird ein System für mindestens zwei Klassen trainiert. Das Trainingssystem generiert also entweder eine einzelne Funktion oder eine Reihe von Funktionen. Diese Merkmale sollten die oben angegebenen Eigenschaften besitzen.

Das Problem tritt auf, wenn für jede Klasse ein Feature-Set vorhanden ist und eine Korrelation zwischen einigen der Features besteht. Dies impliziert, dass unter diesen korrelierenden Merkmalen eines oder wenige zur Darstellung ausreichen, und hier kommt die Merkmalsauswahl ins Spiel. Außerdem müssen diese Merkmale gespeichert werden, wenn sich auch der Bedarf an Merkmalssatzspeicher erhöht.

Dann kommt die Dimensionsreduktion, die nichts anderes als der Teil des Merkmalsauswahlprozesses ist. Es ist der Prozess der Auswahl des optimalen Satzes von Merkmalen, die die Daten am besten beschreiben. Es gibt viele Techniken dafür, wie z. B. Hauptkomponentenanalyse, unabhängige Komponentenanalyse und Matrixfaktorisierung usw.


-3

Beispiel: Wenn Sie ein landwirtschaftliches Land besitzen, ist die Auswahl eines bestimmten Gebiets dieses Landes eine Merkmalsauswahl. Wenn Sie die betroffenen Pflanzen in diesem Gebiet finden möchten, müssen Sie jede Pflanze anhand eines bestimmten Merkmals beobachten, das häufig vorkommt in jeder Pflanze, um die Abnormalitäten zu finden ... dafür würden Sie die Merkmalsextraktion in Betracht ziehen. In diesem Beispiel entspricht die ursprüngliche landwirtschaftliche Fläche der Dimensionsreduktion.


Nein, es hat nichts mit Geodaten zu tun. Es ist auch auf zeitliche, räumlich-zeitliche und andere Arten von Daten anwendbar.
Emre
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.