我认为它应该是相同的,但对于方法decision_function()
,我会得到不同的结果。只有decision_function_shape='ovr'
的SVC真的更快。
相关:Scikit learn multi-class classification for support vector machines
答案 0 :(得分:4)
我在See also标题中对documentation of LinearSVC做了一些澄清,其中提到了SVC。
SVC
使用libsvm实现支持向量机分类器:
...
...
此外,SVC多类模式使用一对一方案实现,而LinearSVC使用一种方案 与其他人相比。使用SVC可以实现一个与其余的一个 使用sklearn.multiclass.OneVsRestClassifier包装器。
...
此外,SVC将所有培训委托给基础libsvm
库,该库将多类案例处理为'OvO'
(即使decision_function_shape =' ovr')。
在问题中提到@delusionX提到decision_function_shape
只是为了与scikit API兼容。最有可能的是,所有其他估算器都将多类作为OvR处理,因此当SVC与其他东西结合使用时(例如在Pipeline,GridSearchCV或Orpack,如OneVsRestClassifier中)返回OvO决策函数会破坏工作别人的。但我无法在任何地方找到明确的文字。
有趣的事实:OneVsOneClassifier还会返回一个决定函数,该函数会确认OvR的形状。