GridSearchCV фитинг - PullRequest
       24

GridSearchCV фитинг

0 голосов
/ 25 ноября 2018

У меня проблемы с подгонкой моего классификатора с помощью бинаризованных меток.

clf_linear = GridSearchCV(SVC(kernel='linear', class_weight='balanced'),
                      param_grid, cv=5)

clf_linear = clf_linear.fit(X_train_pca, y_train)

y_train был преобразован в двоичную форму следующим способом:

y_train = label_binarize(y_train, classes=[1, 2, 3])

Я получил следующую ошибку:

Файл "C: \ Python \ lib \ site-packages\ sklearn \ utils \ validation.py ", строка 788, в column_or_1d повысить ValueError (" неправильная форма ввода {0} ". format (shape)) ValueError: неправильная форма ввода (545, 3)

входформа метки (682, 3) нет (545, 3).

Мой профессор сказал мне использовать бинаризованные метки в gridSearchCV, но, читая документы scikit-learn, я думаю, что не могу этого сделать.

1 Ответ

0 голосов
/ 26 ноября 2018

Не имеет значения, его 682,3 или 545,3.Почему цель имеет 3 столбца?Ваш у (цели) должен быть 1-й массив для SVC.Вам не нужно делать операцию label_binarize.Сохраните y_train как есть.

Делайте это:

y_train = label_binarize(y_train, classes=[1, 2, 3])

Преобразует y_train в label-indicator матрицу.Это используется для задач классификации с несколькими метками (где образец может иметь более одного класса одновременно).Он не используется для задач с несколькими классами.

Сохраните y_train в том виде, в котором он хранится как одномерный массив, а SVC будет обрабатывать все остальное.

...