sklearn scikit machine logistic linearsvc learning learn example machine-learning scikit-learn libsvm

machine-learning - scikit - svc machine learning



¿Cuál es la diferencia entre SVC y SVM en scikit-learn? (1)

De la documentation scikit-learn implementa SVC, NuSVC y LinearSVC, que son clases capaces de realizar una clasificación de múltiples clases en un conjunto de datos. Por otro lado, también leí que scikit learn también usa libsvm para el algoritmo de vector de máquina de soporte. Estoy un poco confundido acerca de cuál es la diferencia entre las versiones SVC y libsvm, por ahora supongo que la diferencia es que SVC es el algoritmo de la máquina de vectores de soporte para el problema multiclase y libsvm es para el problema de la clase binaria. ¿Alguien podría ayudarme a entender la diferencia entre esto?


Solo son diferentes implementaciones del mismo algoritmo. El módulo SVM (SVC, NuSVC, etc.) es un envoltorio alrededor de la biblioteca libsvm y admite diferentes núcleos, mientras que LinearSVC se basa en liblinear y solo admite un núcleo lineal. Asi que:

SVC(kernel = ''linear'')

es en teoría "equivalente" a:

LinearSVC()

Debido a que las implementaciones son diferentes en la práctica, obtendrás resultados diferentes, los más importantes es que LinearSVC solo admite un núcleo lineal, es más rápido y puede escalar mucho mejor.