LinearSVC coef_ attirbute

时间:2019-02-08 19:21:24

标签: python-3.x scikit-learn linear coefficients svc

我使用python3.x中的sklearn库训练了LinearSVC模型。目标变量“ y”具有4个级别(0、1、2、3)。

model = LinearSVC()
X_train, X_test, y_train, y_test = tts(X, y, test_size = 0.25,
                                       random_state = 4)
model.fit(X_train, y_train)
model.coef_

我得到一个像这样的numpy ndarray:

  

array([[--1.64280582,-0.49711136,0.,...,0.,           -0.50203059,0.],         [0.,0.,-2.67396495,...,2.35298657,            0.,0.],         [1.11471827,3.76220356,0.,...,-11.09758616,            0.,0.],         [0.,-2.7305259,0.09663903,...,0.,            0.,0.]])

我需要知道哪个数组匹配每个目标变量级别。我怎么知道?

2 个答案:

答案 0 :(得分:0)

此数组与输入数据的顺序相同。数组从[0]开始,它对应于输入数据中的feature_1。 该数组的结构将为n_classes * n_features。

答案 1 :(得分:0)

首先,这是一个相对于其余的实现。

从文档中:

  

coef_:数组,如果n_classes == 2,则形状= [n_features],否则[n_classes,   n_features]分配给要素的权重(   原始问题)。仅在线性情况下可用   内核。

     

coef_是从raw_coef_派生的只读属性,该属性紧随   liblinear的内部内存布局。

在您的情况下,形状为[n_classes,n_features]。

  • model.coef_[0,:]为您提供类0 vs all的特征权重。

  • model.coef_[1,:]为您提供类1 vs all的特征权重。

  • e.t.c。