1

對於一個項目,我使用scikit-learn的迴歸算法(隨機森林,額外樹木,Adaboost和套袋)比較多個決策樹。 爲了比較和解釋它們,我使用了特徵重要性,儘管對於裝袋決策樹,這看起來並不可用。功能重要性 - 套袋,scikit-learn

我的問題:有人知道如何獲得Bagging的要素重要性列表嗎?

問候,Kornee

回答

4

你說的是BaggingClassifier?它可以與許多基本估計器一起使用,所以沒有實現重要的重要性。有計算功能重要性的模型無關的方法(例如參見https://github.com/scikit-learn/scikit-learn/issues/8898),scikit-learn不使用它們。

在決策樹爲基礎估計就可以計算功能重要性有關自己的情況:它會只是一個所有樹木之間的tree.feature_importances_平均bagging.estimators_

import numpy as np 
from sklearn.ensemble import BaggingClassifier 
from sklearn.tree import DecisionTreeClassifier 
from sklearn.datasets import load_iris 

X, y = load_iris(return_X_y=True) 
clf = BaggingClassifier(DecisionTreeClassifier()) 
clf.fit(X, y) 

feature_importances = np.mean([ 
    tree.feature_importances_ for tree in clf.estimators_ 
], axis=0) 

RandomForestClassifer做內部相同的計算。