В чем разница между 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
как взломать переполнение стека? ОК?