В целом нелинейные ядра больше подходят для моделирования более сложных функций, чем линейные функции, но это зависит от данных, выбранных гиперпараметров (например, штраф и ядро) и того, как вы оцениваете свои результаты.
LinearSVC
Похож на SVC с параметром kernel = 'linear', но реализован в терминах liblinear, а не libsvm, поэтому он обладает большей гибкостью в выборе штрафов и потерьфункции и должны лучше масштабироваться для большого количества образцов.
Источник: sklearn.svm.LinearSVC.html # sklearn.svm.LinearSVC
SVC
Реализация основана на libsvm.Сложность времени подбора более чем квадратичная с количеством выборок, что затрудняет масштабирование для набора данных с более чем несколькими 10000 выборками.
Источник: sklearn.svm.SVC.html # sklearn.svm.SVC
Сначала вы должны протестировать модель LinearSVC
, поскольку она имеет всего несколько гиперпараметров и должна дать вам первый результат.После этого вы можете попробовать обучить кучу SVC
моделей и выбрать лучших.Для этого я рекомендую сделать gridsearch over C
, kernel
, degree
, gamma
, coef0
и tol
.