В чем разница между SVC и SVM в scikit-learn?

Из документации scikit-learn реализует SVC, NuSVC и LinearSVC, которые являются классами, способными выполнять классификацию нескольких классов в наборе данных. С другой стороны, я также читал о том, что scikit learn также использует libsvm для алгоритма поддержки векторных машин. Я немного смущен тем, что разница между версиями SVC и libsvm, теперь я думаю, что разница в том, что SVC - это алгоритм машинной машины поддержки для многоклассовой задачи, а libsvm - для задачи двоичного класса. Может ли кто-нибудь помочь мне понять разницу между этим?.

Ответы

Ответ 1

Это просто разные реализации одного и того же алгоритма. Модуль SVM (SVC, NuSVC и т.д.) Является оберткой вокруг библиотеки libsvm и поддерживает разные ядра, а LinearSVC основан на liblinear и поддерживает только линейное ядро. Итак:

SVC(kernel = 'linear')

теоретически "эквивалентен":

LinearSVC()

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

Ответ 2

как взломать переполнение стека? ОК?