我用Python中的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. ]])
我需要知道哪个数组与每个目标变量级别匹配。我怎么知道呢?
首先,这是一个一对一的实现。
从文档中:
coef_ : 数组, 形状 = [n_features] 如果 n_classes == 2 其他 [n_classes, n_features] 分配给要素的权重(系数在 原始问题(。这仅在线性的情况下可用 内核。
coef_ raw_coef_是从 Liblinear的内部存储器布局。
在您的情况下,形状为 [n_classes, n_features]。
-
model.coef_[0,:]
为您提供了类0 vs all
的功能权重。 -
model.coef_[1,:]
为您提供了类1 vs all
的功能权重。 -
等
此数组与输入数据的顺序相同。数组从 [0] 开始,这对应于输入数据中的feature_1。此数组的结构将n_classes * n_features。