如何使用堆叠分类器 + 逻辑回归(二元分类)查找系数的特征名称



我正在尝试将StackingClassifier与Logistic回归(Binary Classifier(一起使用。示例代码:

from sklearn.datasets import load_iris
from mlxtend.classifier import StackingClassifier
from sklearn.linear_model import LogisticRegression

iris = load_iris()
X = iris.data
y = iris.target
y[y == 2] = 1 #Make it binary classifier
LR1 = LogisticRegression(penalty='l1')
LR2 = LogisticRegression(penalty='l1')
LR3 = LogisticRegression(penalty='l1')
LR4 = LogisticRegression(penalty='l1')
LR5 = LogisticRegression(penalty='l1')

clfs1= [LR1, LR2]
clfs2= [LR3, LR4, LR5]
cls_=[]
cls_.append(clfs1)
cls_.append(clfs2)
sclf = StackingClassifier(classifiers=sum(cls_,[]), 
    meta_classifier=LogisticRegression(penalty='l1'), use_probas=True, average_probas=False)
sclf.fit(X, y)
sclf.meta_clf_.coef_ #give the weight values

对于每个分类器,初始逻辑回归为两个类提供概率值。当我使用 5 个分类器堆叠时,sclf.meta_clf_.coef_给出了 10 个权重值。

array([[-0.96815163, 1.25335525, -0.03120535, 0.8533569 , -2.6250897 , 1.98034805, -0.361378 , 0.00571954, -0.03206343, 0.53138651]](

我对权重值的顺序感到困惑。

  • 第一个逻辑回归LR1的第一个两个值是否(-0.96815163, 1.25335525)

  • 第一个逻辑回归LR2的第二个值是否(-0.03120535, 0.8533569)

我想找出哪些值适用于堆叠分类器的哪个逻辑回归 (LR(。

请帮忙。

如果您的输出是:

array([[-0.96815163, 1.25335525, -0.03120535, 0.8533569 , -2.6250897 , 1.98034805, -0.361378 , 0.00571954, -0.03206343, 0.53138651]](

然后

-0.96815163, 1.25335525:LR1 的概率为 0 和 1

-0.03120535, 0.8533569:LR2 的概率为 0 和 1

-2.6250897, 1.98034805:LR3 的概率为 0 和 1

-0.361378, 0.00571954:LR4 的概率为 0 和 1

-0.03206343, 0.53138651:LR5 的概率为 0 和 1

最新更新