gpt4 book ai didi

python - 带 SVC 的 OneVsRestClassifier 和带 decision_function_shape ='ovr' 的 SVC 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 16:58:15 28 4
gpt4 key购买 nike

我认为它应该是相同的,但是对于方法 decision_function() 我得到了不同的结果。而只有 decision_function_shape='ovr' 的 SVC 确实更快。

相关:Scikit learn multi-class classification for support vector machines

最佳答案

我得到了关于 documentation of LinearSVC 的一些说明在另请参阅标题中,其中提到了 SVC。

SVC

Implementation of Support Vector Machine classifier using libsvm:

....

....

Furthermore SVC multi-class mode is implemented using one vs one scheme while LinearSVC uses one vs the rest. It is possible to implement one vs the rest with SVC by using the sklearn.multiclass.OneVsRestClassifier wrapper.

....

此外,SVC 将所有训练委托(delegate)给底层 libsvm 库,该库将多类情况处理为 'OvO'(即使 decision_function_shape = 'ovr' ).

在@delusionX 的 issue 中提到 decision_function_shape 只是为了兼容 scikit API。最有可能的是,所有其他估计器都将多类处理为 OvR,因此当 SVC 与其他东西结合使用时(例如在管道、GridSearchCV 或像 OneVsRestClassifier 这样的包装器中)返回 OvO 决策函数会破坏工作别人的。但是我在任何地方都找不到明确写的。

有趣的事实:OneVsOneClassifier还返回一个决策函数,该函数与 OvR 的形状相符。

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com