scikit-learn中SVC和SVM有什么区别?

时间:2015-01-12 23:59:34

标签: machine-learning scikit-learn libsvm

来自documentation scikit-learn实现SVC,NuSVC和LinearSVC,它们是能够对数据集执行多类分类的类。另一方面,我也读到了scikit学习也使用libsvm进行支持向量机算法。我对SVC和libsvm版本之间的区别有点困惑,现在我猜不同的是,SVC是多类问题的支持向量机算法,而libsvm是二进制类问题。有人能帮助我理解这个之间的区别吗?。

2 个答案:

答案 0 :(得分:22)

它们只是同一算法的不同实现。 SVM模块(SVC,NuSVC等)是libsvm库的包装器,支持不同的内核,而LinearSVC基于liblinear,只支持线性内核。所以:

SVC(kernel = 'linear')

理论上是等同的"到:

LinearSVC()

由于实现方法的不同,您会得到不同的结果,最重要的是LinearSVC只支持线性内核,速度更快,可以更好地扩展。

答案 1 :(得分:0)

这是本书的快照-动手机器学习

This is a snapshot from the book - Hands-on Machine Learning

希望您会发现它有用。