LinearSVC coef_ attirbute - PullRequest
       40

LinearSVC coef_ attirbute

0 голосов
/ 08 февраля 2019

Я обучил модель LinearSVC с библиотекой sklearn в Python.Целевая переменная 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 голосов
/ 06 августа 2019

Первый , это реализация один против остальных .

Из документации:

coef_:array, shape = [n_features], если n_classes == 2 else [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 голосов
/ 22 февраля 2019

Этот массив находится в том же порядке, что и ваши входные данные.Массив начинается с [0] и соответствует вашему feature_1 во ваших входных данных.Структура этого массива будет n_classes * n_features.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...