AI-United » Allgemein » Feature Selection anhand des Random Forests

Feature Selection anhand des Random Forests

Die Weisheit der Vielen

Feature Selection anhand des Random Forests

Random Forests sind einer der erfolgreichen und beliebtesten Algorithmen des maschinellen Lernens. Dies ist mit einer guten Vorhersageleistung, geringen Überanpassung und einfachen Interpretierbarkeit zu erklären. Diese Interpretierbarkeit ist damit verbunden, dass die Ableitung der Bedeutung jeder Variablen im Entscheidungsbaum leicht durchzuführen ist. Dies bedeutet, dass man ziemlich einfach berechnen kann, wie groß der Beitrag jeder Variablen zur Entscheidung ist.

Feature Selection anhand des Random Forests zählt zur Kategorie “Embedded-Ansätzen”, die die Eigenschaften von Filter- und Wrapper-Ansätzen verknüpfen und durch Algorithmen implementiert werden, die ihre eigenen eingebauten Feature Selection-Ansätze haben. Man kann folgende Vorteile von Embedded-Ansätzen nennen:

  • Hohe Genauigkeit.
  • Bessere Verallgemeinerung.
  • Interpretierbarkeit.
Wie führt Random Forest Features Selection aus?

Jeder Baum wird aus einer zufälligen Extraktion der Beobachtungen aus dem Datensatz sowohl auch einer zufälligen Extraktion der Features erstellt. Aber nicht jeder Baum kann alle Beobachtungen oder Features sehen, wodurch sichergestellt wird, dass die Bäume nicht korreliert sind und auf diese Weise weniger zur Überanpassung neigen. Jeder Entscheidungsbaum stellt auch eine Folge von Ja-Nein-Fragen dar, die auf einem einzelnen Feature oder einer Verbindung von Features aufgebaut werden. Die Besonderheit des Entscheidungsbaums besteht darin, dass er den Datensatz an jedem Knoten (dies geschieht bei jeder Frage) in zwei Untergruppen aufteilt. Dabei enthält jede der Untergruppen die Beobachtungen, die untereinander ähnlicher sind und sich von denen in der anderen Untergruppe unterscheiden. Folglich wird die Bedeutung jedes Features von der “Reinheit” jeder der Untergruppe abgeleitet.

Ist die Funktionsweise bei Klassifikation und Regression anders?

Bei der Klassifikation dient als Maß für die Verunreinigung die Gini-Verunreinigung oder der Informationsgewinn/die Informationsentropie.

Bei der Regression dient als Maß für die Verunreinigung die Varianz.

Auf diese Art kann es beim Training eines Baums berechnet werden, um wie viel jedes Feature zur Verringerung der Verunreinigung führt. Dies bestimmt die Bedeutung eines Features. Je mehr ein Feature die Verunreinigung verringert, desto größer ist seine Bedeutung. In Random Forests kann die Verringerung der Verunreinigung von jedem Feature über Bäume gemittelt und auf diese Weise die endgültige Bedeutung der Variablen bestimmt werden.

Um eine bessere Intuition zu gewährleisten, sind die oben in den Bäumen ausgewählten Features grundsätzlich wichtiger als die an den Endknoten der Bäume ausgewählten Features, da die oberen Aufteilungen in der Regel zu höheren Informationsgewinnen führen.

Mithilfe der Python-Code betrachten wir, wie mithilfe der Randrom Forest Features Selection durchgeführt wird.

Hier wird Random Forest auf den aktuellen Datensatz nicht angewendet, obwohl es problemlos auf jeden tatsächlichen Datensatz angewendet werden kann.

1. Importieren von Bibliotheken.

import pandas as pd
from sklearn.ensemble import RandomForestClassfier
from sklearn.feature_selection import SelectFromModel

2. Bei allen Feature Selection-Ansätzen ist es empfehlenswert, die Features durch die Überprüfung nur des Trainingssatzes auszuwählen, da dadurch eine Überanpassung vermieden werden sollte.

Es gibt also einen Train- und einen Testdatensatz. Die Features werden aus dem Trainsatz ausgewählt und danach werden die Änderungen später auf den Testsatz übertragen.

X_train,y_train,X_test,y_test = train_test_split(data,test_size=0.3)

3. Hier wird die Modellanpassung und Feature Selection zusammen in einer Codezeile durchgeführt.

  • Zunächst wird die Instanz des Random Forests spezifiziert, die die Anzahl der Bäume anzeigt.
  • Dann werden die Features mithilfe des selectFromModel–Objekts von sklearn automatisch ausgewählt.
sel = SelectFromModel(RandomForestClassifier(n_estimators = 100))
sel.fit(X_train, y_train)

Die Aufgabe von SelectFromModel ist es, die Features auszuwählen, deren Bedeutung standardmäßig größer als die mittlere Bedeutung aller Features ist. Nach Wunsch kann dieser Schwellenwert geändert werden.

4. Um zu verstehen, welches Feature wichtig ist, kann die Methode get_support für das angepasste Modell verwendet werden.

sel.get_support()

Es handelt sich um das Zurückgeben eines Arrays von Booleschen Werten. Richtig steht für die Features, deren Bedeutung größer als die mittlere Bedeutung ist, und Falsch steht für den Rest.

5. Eine Liste wird erstellt und die ausgewählten Features gezählt.

selected_feat= X_train.columns[(sel.get_support())]
len(selected_feat)

Eine ganze Zahl wird zurückgegeben, die die Anzahl der Features darstellt, die vom Random Forest ausgewählt wurden.

6. Der Name der ausgewählten Features wird ermittelt, indem man Folgendes angibt:

print(selected_feat)

Der Name des ausgewählten Features wird zurückgegeben.

7. Auch die Verteilung der Bedeutung kann überprüft und grafisch dargestellt werden.

pd.series(sel.estimator_,feature_importances_,.ravel()).hist()

Ein Histogramm wird zurückgegeben, das die Verteilung der Features darstellt, die durch die Verwendung dieses Feature Selection-Ansatzes ausgewählt wurden.

Die Parameter des Entscheidungsbaums können selbstverständlich angepasst werden. Wo das Abschneiden zur Auswahl der Features eingesetzt wird, ist dies ein bisschen unsystematisch. Eine der Möglichkeiten besteht darin, dass die Top 10, 20 Features oder das oberste 10. Perzentil ausgewählt werden. Zu diesem Zweck können gegenseitige Informationen in Verbindung mit SelectKBest oder SelectPercentile von sklearn verwendet werden.

Random Forest hat auch einige Einschränkungen:
  • Korrelierten Features wird gleiche oder ähnliche Bedeutung gegeben, im Großen und Ganzen jedoch eine reduzierte Bedeutung im Vergleich zum gleichen Baum, der ohne korrelierte Gegenstücke modelliert wurde.
  • Random Forests und Entscheidungsbäume bevorzugen in der Regel Features mit hoher Kardinalität (Entscheidungsbäume tendieren zu dieser Art von Variablen).

Fazit

Die Auswahl der Features mithilfe der Bedeutung baumabgeleiteter Features gilt als ein sehr unkomplizierter, schneller und gewöhnlich genauer Ansatz zur Auswahl guter Features für das maschinelle Lernen. Dies ist besonders wichtig bei Erstellung der Baummethoden.

Korrelierte Features in einem Entscheidungsbaum haben jedoch eine ähnliche und geringere Bedeutung im Vergleich zu ihrer Bedeutung, wenn der Entscheidungsbaum ohne korrelierte Gegenstücke erstellt worden wäre.

In solchen Fällen wird empfohlen, Features rekursiv und nicht alle zusammen auszuwählen.

Möchten Sie mehr darüber erfahren, wir Feature Selection unter Verwendung von Random Forest durchgeführt wird, so können Sie sich an das Team von AI-United.de per Mail oder Q&A wenden.

Quelle

AI-United-Redaktion

Kommentar hinzufügen

Your email address will not be published. Required fields are marked *

300-101   400-101   300-320   300-070   300-206   200-310   300-135   300-208   810-403   400-050   640-916   642-997   300-209   400-201   200-355   352-001   642-999   350-080   MB2-712   400-051   C2150-606   1Z0-434   1Z0-146   C2090-919   C9560-655   642-64   100-101   CQE   CSSLP   200-125   210-060   210-065   210-260   220-801   220-802   220-901   220-902   2V0-620   2V0-621   2V0-621D   300-075   300-115   AWS-SYSOPS   640-692   640-911   1Z0-144   1z0-434   1Z0-803   1Z0-804   000-089   000-105   70-246   70-270   70-346   70-347   70-410