svc中ovo和ovr绘制边界问题

学习SVC中的ovo和ovr问题。
svc中使用ovo和ovr时绘制出来的分类边界都相同,并且准确率也一样,不知道是为什么。

img

img

img

img

该问题好像在GitHub中有人提到过issue,首先明确概念:

  • ovo:one versus one,一对一。即一对一的分类器,这时对K个类别需要构建K * (K - 1) / 2个分类器

  • ovr:one versus rest,一对其他,这时对K个类别只需要构建K个分类器。

但我在看issue提到问题中发现,好像sklearn对于decision_function_shape 这个参数里的ovo与ovr设置,始终默认都是ovo,即使是作为多类策略。而如果需要使用ovr,可以强制使用OneVsRestClassifier()
issue帖为:
https://github.com/scikit-learn/scikit-learn/issues/22612