2016-04-16 20 views
1

Wie genau weist der in Python implementierte adaboost-Algorithmus jedem Feature Feature-Importanzen zu? Ich verwende es zur Auswahl von Features und mein Modell schneidet besser ab, wenn es die Feature-Auswahl basierend auf den Werten von feature_importance_ anwendet.scikit adaboost feature_importance_

Antwort

1

Das feature_importances_ ist ein Attribut, das für den Adaboost-Algorithmus von sklearn verfügbar ist, wenn der Basisklassifikator ein Entscheidungsbaum ist. Um zu verstehen, wie feature_importances_ im Adaboost-Algorithmus berechnet werden, müssen Sie zuerst verstehen, wie es für einen Entscheidungsbaum-Klassifikator berechnet wird.

Decision Tree Classifier:

Die feature_importances_ variieren je nachdem, welche Kriterien aufgeteilt Sie wählen. Wenn das Split-Kriterium auf "Entropie" eingestellt ist: DecisionTreeClassifier(criterion='entropy') entsprechen die feature_importances_ dem Informationsgewinn jedes Features. Here is a tutorial zur Berechnung der Informationsverstärkung jedes Features (insbesondere Folie 7). Wenn Sie die Aufteilungskriterien ändern, entsprechen die feature_importances_ nicht mehr dem Informationsgewinn, die Schritte, die Sie zu ihrer Berechnung durchführen, sind jedoch ähnlich denen in Folie 7 (wobei die neuen Aufteilungskriterien anstelle von Entropie verwendet werden).

Ensemble Sichter:

Lassen Sie uns jetzt auf Ihre ursprüngliche Frage der Rückkehr, wie ist es für den AdaBoost Algorithmus bestimmt. According to the docs:

Dieser Begriff der Bedeutung kann durch einfaches Mitteln der Funktion Bedeutung des einzelnen Baumes

zu Entscheidungsbaum Ensembles erweitert werden