Welche Algorithmen für maschinelles Lernen sind gut, um abzuschätzen, welche Funktionen wichtiger sind?


12

Ich habe Daten mit einer minimalen Anzahl von Features, die sich nicht ändern, und ein paar zusätzlichen Features, die sich ändern und einen großen Einfluss auf das Ergebnis haben können. Mein Datensatz sieht so aus:

Merkmale sind A, B, C (immer vorhanden) und D, E, F, G, H (manchmal vorhanden)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Ich möchte den Ergebniswert vorhersagen, und die Kombination zusätzlicher Parameter ist für die Bestimmung des Ergebnisses sehr wichtig. In diesem Beispiel führt die Anwesenheit von E und F zu einem großen Ergebnis, während die Anwesenheit von E und G dies nicht tut. Welche maschinellen Lernalgorithmen oder -techniken eignen sich zur Erfassung dieses Phänomens?


Mit "manchmal anwesend" meinen Sie, dass Sie ihren Wert nur manchmal kennen? Oder dass sie bekanntermaßen in den meisten Fällen keine Rolle spielen? Oder vielleicht noch etwas?
David J. Harris

@ DavidJ.Harris Mit "manchmal vorhanden" meine ich, dass das jeweilige Schulungsbeispiel das Grundstück nicht besitzt. Es ist wie wenn es gleich Null wäre. In meinem Problem sind alle meine Funktionen positive Zahlen in einem bestimmten Bereich (z. B. 5 bis 15 oder 100 bis 1000).
Benjamin Crouzier

1
Es könnte gut sein, sich diesen Link anzuschauen anzusehen. eren.0fees.net/2012/10/22/…
erogol

Antworten:


14

Dies ist eines der Hauptforschungsgebiete des maschinellen Lernens und wird als Merkmalsauswahl bezeichnet .

Im Allgemeinen besteht die einzige Möglichkeit, die beste Teilmenge von Merkmalen anzugeben (für die Eingabe in ein Vorhersagemodell, mit dem sie kombiniert werden können), darin, alle möglichen Teilmengen auszuprobieren. Dies ist normalerweise nicht möglich. Daher wird versucht, den Bereich von Feature-Teilmengen anhand verschiedener Heuristiken zu untersuchen (einige typische Ansätze finden Sie im Artikel).


3

Nach meinem Verständnis suchen Sie ein Maß von variabler Bedeutung. Es gibt verschiedene Varianten, die auf verschiedenen theoretischen Ansätzen basieren, aber alle sind eng mit den Methoden verknüpft, die zur Optimierung des Algorithmus verwendet werden, von dem Sie sprechen. Im Allgemeinen verfügt jeder Algorithmus für maschinelles Lernen über eine kanonische Optimierungsmethode. Rückausbreitung für neuronale Netze, sequentielle Minimaloptimierung für SVMs, verschiedene Informationskriterien und statistische Signifikanztests für Entscheidungsbäume, einschließlich Chi-Quadrat-Signifikanz oder Gini-Verunreinigung. Natürlich werden häufig andere neuere Optimierungsmethoden für jeden der Algorithmen vorgeschlagen.

Diese Optimierungsmethoden für jeden Algorithmus definieren im Wesentlichen die variable Bedeutung für das vorliegende Modell. Im Wesentlichen suchen Sie nach einer Annäherung oder interpretierbaren Darstellung der Ergebnisse dieses Optimierungsschritts, den der Algorithmus durchführt. Dies ist jedoch aus mehreren Gründen problematisch.

  1. Die Schwierigkeit, den Einfluss einer bestimmten Variablen auf die Auswahl der Modellform zu bestimmen, ist häufig ein stochastischer Prozess. Die Variablen beeinflussen die Modellauswahl in gewissem Maße, so dass selbst dann, wenn eine Variable für die endgültige Vorhersage in einem Modell nicht wichtig ist kann es die Modellform selbst entscheidend geprägt haben. Da die Generierung des Modells selbst häufig stochastisch ist (optimiert mit Partikelschwarmoptimierung oder einer Absackmethode usw.), ist es schwer zu verstehen, wie eine bestimmte Variable ihre Form geformt haben kann.

  2. Die Schwierigkeit, die Wichtigkeit einer einzelnen Variablen zu extrahieren, da diese nur in Verbindung oder Interaktion mit einer anderen Variablen wichtig sein kann.

  3. Einige Variablen können nur für einige Beobachtungen wichtig sein. Wird die Bedeutung anderer Beobachtungen nicht beachtet, kann dies die Messung der Gesamtbedeutung verfälschen, indem ein realer Unterschied ermittelt wird.

Es ist auch schwierig, eine sofort interpretierbare Metrik für die variable Wichtigkeit zu erhalten genau der Definition des Modells entspricht, da sie möglicherweise nicht eine einzige Zahl (insbesondere beim Absacken). Stattdessen gibt es in diesen Fällen eine Wichtigkeitsverteilung für jede Variable.

Eine Möglichkeit, diese Probleme zu überwinden, könnte die Verwendung von Störungen sein. Auf diese Weise können Sie Ihr endgültiges Modell analysieren, indem Sie Ihren Variablen zufälliges Rauschen hinzufügen und dann überprüfen, wie sich dies auf die Ergebnisse auswirkt. Der Vorteil besteht darin, dass Sie durch Simulationen herausfinden können, welche Variablen empirisch am wichtigsten sind. Auf diese Weise können Sie die Frage beantworten, welche Variablen die Vorhersage am meisten zerstören würden, wenn sie entfernt werden. Der Nachteil ist, dass es eine gute Chance gibt, dass das Modell (wenn es neu trainiert wird) die anderen Variablen verwenden könnte, um ihre Wirkung zu rekonstruieren, selbst wenn die Variablen entfernt / gestört würden Gibt die Wichtigkeit in Ihrem trainierten Modell an, jedoch nicht die allgemeine Wichtigkeit aller möglichen Modelle.


3

Wie @Bitwise erwähnt, ist die Auswahl oder Extraktion von Features ein riesiges Forschungsgebiet und es gibt unzählige Möglichkeiten, dies zu tun.

Die anderen Antworten sind meiner Meinung nach alle gültig, aber am Ende werden Sie wahrscheinlich die meisten mögen und die Methode auswählen, die für Sie am intuitivsten ist und die Sie am besten verstehen. Ich würde noch zwei mögliche Optionen hinzufügen.

Multiple Regression ist wahrscheinlich die älteste Technik. Die Idee ist, ein Modell zur Beschreibung der Reaktion der Prädiktoren anzupassen und nur die Prädiktoren zu behalten, die einen großen Einfluss auf die Reaktion haben (einen großen Proportionalitätskoeffizienten). Hier würden Sie wahrscheinlich das Fehlen von D, E, F und G , wie sie neu zu kodieren D=0, E=0, F=0, G =0oder so ähnlich.

Eine andere Technik, die nie die Popularität erlangt hat, die sie verdient, ist die Co-Inertia-Analyse (eine Variante der kanonischen Analyse ). Soweit ich weiß, gibt es keine Implementierung, und Sie müssten bei Null anfangen ( dort zum Beispiel). Hierbei handelt es sich um eine lineare Methode, mit der die beste lineare Kombination von Features ermittelt wird, die Ihren Ergebnissen entspricht. Dieser Blog-Beitrag zeigt ein Beispiel für die Verwendung.


2

Ich verwende Information Gain (auch als Gegenseitige Information bekannt). Mein Berater und ich verwenden regelmäßig den in diesem Artikel von Cohen, 2008, beschriebenen Ansatz , um Merkmale für die Klassifizierung nach SVM zu analysieren.


2

Zufällige Wälder könnten ziemlich praktisch für das sein, was Sie tun möchten. Das randomForest-Paket für R hat eine Funktion, die 2 wichtige Maße berechnet. Es kann auch einige partielle Abhängigkeitsdiagramme erstellen, sodass Sie den Randeffekt, den der Prädiktor auf die Antwort haben kann, visuell überprüfen können.


1

Ich bin böse hier, aber aus einem Grund. Haben Sie darüber nachgedacht, die uneinheitlichen Beobachtungen durch eine Indikatorvariable | not_present zu ersetzen? Aus Ihrer Beschreibung geht hervor, dass dieser Indikatorwert ein gültiges Merkmal ist, da das Vorhandensein der Faktoren D bis H nicht aussagekräftig ist. Das heißt, dass ihr Vorhandensein nur auf größere Ergebnisse hinweist.

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.