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
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:
zu Entscheidungsbaum Ensembles erweitert werdenDieser Begriff der Bedeutung kann durch einfaches Mitteln der Funktion Bedeutung des einzelnen Baumes