【不肯定】OvO AND OvR的实现

来源:9-8 OvR与OvO

黄义舜

2022-08-27

我在实现我在OvO AND OvR的过程中,我不太确定自己思路是否正确。


一、OvR

OvR我觉得问题不大,写了一遍我觉得清晰很多了,


数据准备

训练数据

  • 选取9个小球,X=9
  • 共有三种颜色,红黄蓝,y = 3红 or 3黄 or 3蓝

训练过程


分为三个训练器

  • 训练器1 ==红和其他类别
  • 训练器2 ==黄和其他类别
  • 训练器3 ==蓝和其他类别

整理数据

原始数据【红,红,红,黄,黄,黄,蓝,蓝,蓝】

  • 在训练器1中将数据变成这样【红,红,红,灰,灰,灰,灰,灰,灰】
  • 在训练器2中将数据变成这样【灰,灰,灰,黄,黄,黄,灰,灰,灰】
  • 在训练器3中将数据变成这样【灰,灰,灰,灰,灰,灰,蓝,蓝,蓝
    图片描述
    这样就把一个多分类问题变成了三个二分类问题。
  • 通过逻辑回归计算出训练器1红色与灰色的决策边界
  • 通过逻辑回归计算出训练器1黄色与灰色的决策边界
  • 通过逻辑回归计算出训练器1蓝色与灰色的决策边界

测试过程


数据准备

一个红球

图片描述

  1. 一个红球进入三个训练器,分别得到三种概率(0.9,0.1,0.01)
  2. 选取概率最高的训练器1,判断这个求是红球的概率为90%
  3. 判断概率>50%,输出y=红色
    多个球的话依次类推

二、OvO

ovo,我不大确定我觉得有点理不清


数据准备

训练数据(老样子)

  • 选取9个小球,X=9
  • 共有三种颜色,红黄蓝,y = 3红 or 3黄 or 3蓝

训练过程


分为三个训练器

  • 训练器1 ==红球和蓝球
  • 训练器2 ==红球和黄球
  • 训练器3 ==蓝球和黄球

整理数据 《不确定1》

原始数据【红,红,红,黄,黄,黄,绿,绿,绿】

  • 在训练器1中将数据变成这样【红,红,红蓝,蓝,蓝
  • 在训练器2中将数据变成这样【红,红,红黄,黄,黄
  • 在训练器3中将数据变成这样【黄,黄,黄蓝,蓝,蓝
    图片描述
    《不确定2》
    将三分数据分别输入三份训练器,从而得到三个决策边界
    图片描述

测试过程

《不确定3》


数据准备

一个红球

  1. 一个红球进入训练器1,训练器2和训练器3
  2. 分别得出三条概率(红:92%,蓝10%)(红:90%,黄:10%)(黄:11%,蓝:13%),
  3. 选取概率最高的,判断为红色
  4. y=红色

老师OvO我觉得,我的过程可能错了,但我不大确定正确的样子是怎么样的,希望您能指点一下迷津。

写回答

2回答

liuyubobobo

2022-08-28

对 OvR 的理解完全正确:)


==========


关于 OvO


不确定性 1:

正确的。OvO 每次只选取两个类别的数据训练一个分类器。这会使得每个分类器需要面对的数据大大减少;


不确定性2:

正确的。更广义的说,面对一个 N 分类问题,OvO 需要训练 N * (N - 1) / 2 个分类器。(就是 C(N, 2))对比 OvR,需要训练 O(N) 个分类器。虽然 OvO 需要训练的分类器很多,但是每个分类器面对的数据量变少了。


不确定性3:

这一步你的理解有误。OvO 决定最终分类,不是靠概率,而是靠“投票”。我们在课程后续介绍集成学习的时候,也会再介绍投票这个概念的。


简单来说,对于你的例子:(红:92%,蓝10%)(红:90%,黄:10%)(黄:11%,蓝:13%),

所以:

第一个分类器判断为 红

第二个分类器判断为 红

第三个分类器判断为 蓝(实际上你给出的这个黄蓝的数据应该是有问题的,因为第三个分类器只针对黄蓝数据做分类,所以得到的黄蓝的概率和(如果是能计算出概率的算法的话)应该为 1)


三个分类器,有两个分类器判断为 红;判断为红的分类器最多。所以最终,OvO 的判断是 红。


更广义的说,用 OvO 处理 N 分类问题,创建了 N * (N - 1) / 2 个分类器。

这些分类其中,如果分类为 x 类别的分类器最多的话,则 OvO 给出的分类结果就是 x;

如果有多个类别,判断为这些类别的分类器同样都是最大值的话,则可以进一步看这些分类器的分类指标的统计值(比如概率的均值。)


继续加油!:)

0
2
lemonlxn
老师好,我可否这样理解: 有N种label,输入一个样本 OVR : 分成N个分类器,每个分类器输出概率,哪个label的概率最高,输出哪个label OVO: 分成C(N,2)个分类器,每个分类器输出最大概率对应的label,哪个label数量多则输出哪个label
2023-02-15
共2条回复

lemonlxn

2023-02-15

我做了一个summary,可参考
https://img.mukewang.com/szimg/63ec871809bdbde515140767.jpg

0
1
liuyubobobo
大赞!感谢分享!:)
2023-02-16
共1条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5839 学习 · 2437 问题

查看课程