1

ロジスティック回帰 (バイナリ分類子) で StackingClassifier を使用しようとしています。サンプルコード:

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

分類器ごとに、初期ロジスティック回帰は 2 つのクラスの確率値を示します。5 つの分類子を積み重ねて使用しているため、sclf.meta_clf_.coef_10 の重み値が得られます。

配列([[-0.96815163、1.25335525、-0.03120535、0.8533569、-2.6250897、1.98034805、-0.361378、0.00571954、-0.03206343、0.53138651])

重み値の順序について混乱しています。意味

  • (-0.96815163, 1.25335525)最初のロジスティック回帰の最初の 2 つの値LR1ですか?

  • (-0.03120535, 0.8533569)最初のロジスティック回帰の 2 番目の 2 つの値LR2ですか?

スタッキング分類器のどのロジスティック回帰 (LR) の値がどれであるかを調べたいと考えています。

助けてください。

4

1 に答える 1