对于一个项目,我正在使用scikit-learn的回归算法(随机森林,额外树,Adaboost和Bagging)比较许多决策树。
为了比较和解释它们,我使用功能重要性,尽管对于装袋决策树而言,这似乎不可用。

我的问题:有人知道如何获取Bagging的功能重要性列表吗?

问候,科妮

最佳答案

您在谈论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在内部进行相同的计算。

07-24 09:51
查看更多