Ist eine Funktionsauswahl erforderlich?

10

Ich möchte ein maschinelles Lernmodell wie Random Forest, Gradient Boosting oder SVM für meinen Datensatz ausführen. Mein Datensatz enthält mehr als 200 Prädiktorvariablen, und meine Zielklassen sind binäre Variablen.

Muss ich die Funktionsauswahl vor der Modellanpassung ausführen? Beeinflusst es die Modellleistung erheblich oder gibt es keinen großen Unterschied, wenn ich das Modell mit allen Prädiktorvariablen direkt anpasse?

LUSAQX
quelle
Wie groß ist Ihr Datensatz? Wenn Sie Tausende von Stichproben und 200 Prädiktorvariablen haben, ist die Wahrscheinlichkeit sehr hoch, dass Sie mit einem Modell wie Random Forests bereits eine recht hohe Leistung erzielen können. Eine weitere Funktionsauswahl verbessert dann Ihre Leistung weiter.
Archie
@Archie Ja, meine Datensatzgröße ist ähnlich wie die, die Sie erwähnt haben. "Weitere Feature-Auswahl": Wollen Sie die Feature-Auswahl vor der Modellanpassung durchführen, um die Modellleistung zu verbessern?
LUSAQX
Ich meine, ich würde zuerst alle Funktionen ausprobieren, Random Forests wäre ein großartiger Klassifikator für den Anfang. Wenn Sie dann die Leistung steigern möchten, würde ich zum Beispiel die Funktionsbedeutungen betrachten , um die wichtigsten Funktionen auszuwählen.
Archie
OK. Das habe ich bisher gemacht. Ich werde einige Methoden zur Funktionsauswahl vor der Modellanpassung ausprobieren, um festzustellen, ob sich bis dahin eine Verbesserung ergibt.
LUSAQX
Eine kurze Antwort aus meiner jüngsten Praxis: Die Funktionsauswahl ist für den Modellvergleich erforderlich. Einige Algorithmen funktionieren bei einigen Funktionen besser, andere bei anderen.
LUSAQX

Antworten:

11

Die Auswahl von Features kann als zu vermeidende Phase angesehen werden. Sie müssen Rechenzeit aufwenden, um Features zu entfernen und tatsächlich Daten zu verlieren, und die Methoden, mit denen Sie Features auswählen müssen, sind nicht optimal, da das Problem NP-Complete ist . Die Nutzung klingt nicht nach einem Angebot, das Sie nicht ablehnen können.

Was sind die Vorteile der Verwendung?

  1. Viele Funktionen und ein niedriges Sample / Features-Verhältnis führen zu Rauschen in Ihrem Datensatz. In einem solchen Fall ist es wahrscheinlich, dass Ihr Klassifizierungsalgorithmus überpasst und Ihnen ein falsches Gefühl für eine gute Leistung vermittelt.
  2. Durch Verringern der Anzahl der Features wird die Laufzeit in späteren Phasen verringert. Auf diese Weise können Sie Algorithmen mit höherer Komplexität verwenden, nach mehr Hyperparametern suchen oder mehr Auswertungen durchführen.
  3. Ein kleinerer Satz von Merkmalen ist für den Menschen verständlicher. Auf diese Weise können Sie sich auf die Hauptquellen der Vorhersagbarkeit konzentrieren und ein genaueres Feature-Engineering durchführen. Wenn Sie einem Kunden Ihr Modell erklären müssen, präsentieren Sie ein Modell mit 5 Funktionen besser als ein Modell mit 200 Funktionen.

Nun zu Ihrem speziellen Fall: Ich empfehle, dass Sie mit der Berechnung der Korrelationen zwischen den Funktionen und dem Konzept beginnen. Das Berechnen von Korrelationen zwischen allen Merkmalen ist ebenfalls informativ. Beachten Sie, dass es viele Arten nützlicher Korrelationen gibt (z. B. Pearson , gegenseitige Informationen ) und viele Attribute, die diese beeinflussen können (z. B. Spärlichkeit, Konzeptungleichgewicht). Wenn Sie sie untersuchen, anstatt blindlings mit einem Funktionsauswahlalgorithmus zu arbeiten, sparen Sie möglicherweise in Zukunft viel Zeit.

Ich glaube nicht, dass Sie mit Ihrem Datensatz viele Laufzeitprobleme haben werden. Das Verhältnis von Beispielen zu Features ist jedoch nicht zu hoch, sodass Sie möglicherweise von der Feature-Auswahl profitieren.

Wählen Sie einen Klassifikator mit geringer Komplexität (z. B. lineare Regression, kleiner Entscheidungsbaum) und verwenden Sie ihn als Benchmark. Probieren Sie es mit dem vollständigen Datensatz und einem Datensatz mit einer Teilmenge der Funktionen aus. Ein solcher Benchmark hilft Ihnen bei der Verwendung der Funktionsauswahl. Sie benötigen eine solche Anleitung, da es viele Optionen gibt (z. B. die Anzahl der auszuwählenden Features, den Algorithmus zur Feature-Auswahl) und da das Ziel normalerweise die Prädikation und nicht die Feature-Auswahl ist, sodass das Feedback mindestens einen Schritt entfernt ist.

DaL
quelle
Vielen Dank. Benötigt ein nichtlinearer Klassifikator wie eine zufällige Gesamtstruktur auch die voneinander unabhängigen Prädiktorvariablen? Ich denke nicht, könnte aber falsch sein. Wie leitet die Korrelation die Merkmalsauswahl?
LUSAQX
Zufälliger Wald ist eine Sammlung von Bäumen, die mit abhängigen Variablen gut umgehen können. Das heißt, da in jedem Knoten im Baum der Datensatz durch alle darüber liegenden Variablen bedingt ist. Das Problem ist, dass das Wachsen des Baums heuristisch ist, sodass die Auswahl der obigen Variablen möglicherweise nicht optimal war.
DaL
Die Korrelation vergleicht nur Paare von Variablen und kann daher kein vollständiges Bild liefern. Auf der anderen Seite erhalten Sie das Ergebnis in O (n ^ 2) und nicht in O (2 ^ n) ... Die Anleitung ist normalerweise spezifisch für den Datensatz, daher fällt es mir schwer, sie auf diese Weise zu erklären. Einige Beispiele sind das Entfernen redundanter Variablen (sehr korreliert mit anderen Variablen). Wenn Sie die Stärke der Korrelation untersuchen, kann dies darauf hinweisen, ob Sie ein kleines Modell verwenden können oder für die Verwendung vieler schwacher Lernender erforderlich sind. Das Identifizieren einer Teilmenge, die nicht zu stark miteinander korreliert ist, könnte darauf hinweisen, dass das Co-Training nützlich ist.
DaL
0

Ja, die Auswahl von Funktionen ist eine der wichtigsten Aufgaben bei Problemen mit maschinellem Lernen, nachdem Daten gerungen und bereinigt wurden. Hier finden Sie die Funktionen, die den Funktionsauswahlprozess mithilfe der XGBOOST-Funktionsbedeutung implementieren.

https://github.com/abhisheksharma4194/Machine-learning

Abhishek Sharma
quelle