我认为应该是相同的,但是对于方法,我得到了不同的结果。而SVC只有decision_function()才真正更快。
相关:Scikit learn multi-class classification for support vector machines

最佳答案

我得到了关于“see also”标题中的documentation of LinearSVC的一些澄清,其中提到了svc。
SVC
使用libsvm实现支持向量机分类器:


此外,SVC多类模式是使用一对一方案实现的,而LinearSvc使用一个方案。
与其他人相比。可以通过以下方式实现一个SVC对另一个SVC
使用sklearn.multicalass.onevsrestClassifier包装器。

此外,SVC将所有培训委托给底层的libsvm库,该库将多类案例作为'OvO'处理(即使决策函数_shape='ovr')。
在@delusionx问题中提到,decision_function_shape只是为了与scikit api兼容。最有可能的是,所有其他估计器都将多类作为ovr来处理,因此当svc与其他东西结合使用时(例如,在管道、gridsearchcv或像onevsrestclassifier这样的包装器中),返回ovo决策函数会破坏其他类的工作。但我在任何地方都找不到明确的书面记录。
有趣的事实:OneVsOneClassifier还返回一个判定函数,该函数用ovr的形状进行确认。

关于python - OneVsRestClassifier与SVC和SVC与decision_function_shape ='ovr'之间有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39604468/

10-12 23:52