我使用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.]])
我需要知道哪个数组匹配每个目标变量级别。我怎么知道?
答案 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。