使用装袋分类器的逻辑回归中的特征重要性

Feature importance in logistic regression with bagging classifier

我正在研究二元分类问题,我在装袋分类器中使用逻辑回归。

几行代码如下:-

    model = BaggingClassifier(LogisticRegression(), 
                  n_estimators=10, 
                  bootstrap = True, random_state = 1)
    model.fit(X,y,sample_weights)

我有兴趣了解此模型的特征重要性指标。如果装袋分类器的估计器是逻辑回归,如何做到这一点?

当决策树被用作装袋分类器的估计器时,我能够获得特征重要性。代码如下:-

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

您无法直接推断线性 classifier 的特征重要性。另一方面,您可以做的是查看其系数的大小。您可以通过以下方式做到这一点:

# Get an average of the model coefficients
model_coeff = np.mean([lr.coef_ for lr in model.estimators_], axis=0)
# Multiply the model coefficients by the standard deviation of the data
coeff_magnitude = np.std(X, 0) * model_coeff

这将大致告诉您每个系数的重要性。换句话说,值 >> 0 表示该系数专注于捕捉正面 class 的趋势,值 << 0 表示该系数专注于正面 class。


以下是基于您在评论中提供的值的示例代码:

X_train = np.random.rand(2000, 3)
X_train.shape
# (2000, 3)
model_coeff = [[2.233232, 1.22435, 1.433434]]
coeff_magnitude = np.std(X_train, 0) * model_coeff
coeff_magnitude.shape
# (1, 3)