我认为应该是一样的,但是对于方法decision_function(),我得到了不同的结果。而只有decision_function_shape='ovr'的SVC确实更快。
发布于 2018-04-10 07:34:04
我在“参见”标题中对LinearSVC文档做了一些澄清,其中提到了SVC。
SVC 利用libsvm实现支持向量机分类器 …… …… 另外,SVC多类模式的实现采用一比一方案,而LinearSVC则采用一比一方案。通过使用sklearn.multiclass.OneVsRestClassifier包装器,可以用SVC实现一个和其他的。 ……
另外,SVC将所有培训委托给底层的libsvm库,它将多类案例处理为'OvO' (即使decision_function_shape = 'ovr')。
它在这个问题上所提到的@妄想X提到,decision_function_shape仅仅是为了与scikit的兼容性。最有可能的是,所有其他估计器都将多类作为OvR来处理,因此当SVC与其他事物结合使用时(例如在管道、GridSearchCV或包装器(如OneVsRestClassifier)中)返回一个OvO决策函数会破坏其他人的工作。但我在任何地方都找不到明确的写法。
有趣的事实:OneVsOneClassifier还返回一个用OvR的形状来确认的决策函数。
https://stackoverflow.com/questions/39604468
复制相似问题