哪些系数去了scikit中多类逻辑回归中的哪一类?

Ale*_*ail 6 python scikit-learn logistic-regression

我正在使用scikit learn的Logistic回归来解决多类问题.

logit = LogisticRegression(penalty='l1')
logit = logit.fit(X, y)
Run Code Online (Sandbox Code Playgroud)

我对推动这一决定的特征感兴趣.

logit.coef_
Run Code Online (Sandbox Code Playgroud)

上面给了我一个漂亮的数据帧(n_classes, n_features)格式,但所有的类和功能名称都消失了.有了功能,这没关系,因为假设它们的索引方式与我传递它们的方式相同似乎是安全的......

但是对于类,这是一个问题,因为我从未以任何顺序明确地传入类.那么哪个类做系数集(数据帧中的行)0,1,2和3属于哪个?

Viv*_*mar 9

顺序将与logit.classes_(classes_是拟合模型的属性,其表示y中存在的唯一类)返回的相同,并且大多数它们将在字符串的情况下按字母顺序排列.

为了解释它,我们在LogisticRegression的随机数据集上提到了上面提到的标签:

import numpy as np
from sklearn.linear_model import LogisticRegression

X = np.random.rand(45,5)
y = np.array(['GR3', 'GR4', 'SHH', 'GR3', 'GR4', 'SHH', 'GR4', 'SHH',
              'GR4', 'WNT', 'GR3', 'GR4', 'GR3', 'SHH', 'SHH', 'GR3', 
              'GR4', 'SHH', 'GR4', 'GR3', 'SHH', 'GR3', 'SHH', 'GR4', 
              'SHH', 'GR3', 'GR4', 'GR4', 'SHH', 'GR4', 'SHH', 'GR4', 
              'GR3', 'GR3', 'WNT', 'SHH', 'GR4', 'SHH', 'SHH', 'GR3',
              'WNT', 'GR3', 'GR4', 'GR3', 'SHH'], dtype=object)

lr = LogisticRegression()
lr.fit(X,y)

# This is what you want
lr.classes_

#Out:
#    array(['GR3', 'GR4', 'SHH', 'WNT'], dtype=object)

lr.coef_
#Out:
#    array of shape [n_classes, n_features]
Run Code Online (Sandbox Code Playgroud)

所以在coef_矩阵中,行中的索引0表示'GR3'(classes_数组中的第一个类,1 ='GR4',依此类推.

希望能帮助到你.