В настоящее время я использую 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, и она все еще не помогает.