Выход Scikit SVM в мультиклассовой классификации всегда дает одинаковую метку


10

В настоящее время я использую Scikit Learn со следующим кодом:

clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0, 
              class_weight='auto')

а затем подгонка и прогнозирование для набора данных с 7 различными метками. Я получил странный вывод. Независимо от того, какой метод перекрестной проверки я использую, предсказанная метка в наборе валидации всегда будет меткой 7.

Я пробую некоторые другие параметры, в том числе полный метод one ( svm.SVC()) по умолчанию, но пока метод ядра, который я использую, используется rbfвместо polyили linearон просто не будет работать, в то время как он действительно хорошо работает для polyи linear.

Кроме того, я уже пробовал прогнозировать данные поезда, а не данные проверки, и они идеально подходят.

Кто-нибудь видел подобную проблему раньше и знает, что здесь происходит?

Я никогда не смотрю подробно на свое распределение классов, но знаю, что около 30% из них - 7, 14% - 4.

Я даже пробую ручную реализацию 1-vs-rest, и она все еще не помогает.


Каковы пропорции ваших данных, которые попадают в каждый из классов?
gung - Восстановить Монику

В моих данных действительно больше "7", но не так много. Около 30% из них - 7. @gung
Тамаки Сакура

Ответы:


10

Сγ

scikit-learn имеет ограниченные возможности поиска гиперпараметров, но вы можете использовать его вместе с библиотекой настройки, такой как Optunity . Пример настройки SVC с помощью scikit-learn можно найти здесь .

Отказ от ответственности: я ведущий разработчик Optunity.


Я на самом деле вручную пробовал каждую комбинацию C и гаммы, которая имеет степень 10 от 0 до 4, но все они дают мне полный 7. Я даже начинаю сомневаться, правильно ли я скомпилирую учение scikit.
Тамаки Сакура

8

Проблема оказывается в тестировании параметров. Я не пробовал, когда gammaмежду 0,0 (что составляет 1 / n_feature) и 1. На моих данных gammaдолжно быть что-то повернуть вокруг1e-8


4
γ
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.