对于OVR的实现有不理解的地方,请老师指点迷津

来源:9-8 OvR与OvO

小白一只726

2023-07-13

图片描述

问题:

  • 这里有四个类别,每次将一个类别和其他所有类别看成两个分类,这样就可以用逻辑回归去获取到想要的theta参数,那么这里有四个分类过程,是否意味着会有四个theta向量参数?
  • 视频中提到“如果有n个类别就要进行n次分类,最后选择分类得分最高的类别”,这里的最后选择分类得分最高的类别是指的fit还是predict中去做的呢。我理解要想知道一个样本的在四个分类器中的分类得分,那么这个样本就一定是有标签的,这就一定是在fit中去做的。那么问题就来了,拟合过程中,每一个样本在这四个分类器中都会有对应最高分类得分,每个样本都可能会选择不同的分类器,也就是说选择了不同的theta参数,这样理解是否正确呢。
  • 现在要预测一个新的样本的分类是什么,如何知道用哪个分类器(也就是用哪个theta)计算器其预测的分类呢。
写回答

1回答

liuyubobobo

2023-07-14

1)

是的,有四组 theta。


2)和3)

“如果有n个类别就要进行n次分类,最后选择分类得分最高的类别” 这说的是在 predict 环节。


整体 OvR 的过程是这样的:


首先,你有一组数据,假设是一个 4 类别的数据。四个类别分别是 ABCD。

先把 BCD 改成 X,这样你的这组数据就是一个二类别的数据了(A 和 X),然后基于这组数据就能 fit 出一个对 A 和 X 分类的模型(其实就是对 A 和 非A 分类的模型);

再把 ACD 改成 X,这样你的这组数据就是一个二类别的数据了(B 和 X),然后基于这组数据就能 fit 出一个对 B 和 X 分类的模型(其实就是对 B 和 非B 分类的模型);

再把 ABD 改成 X,这样你的这组数据就是一个二类别的数据了(C 和 X),然后基于这组数据就能 fit 出一个对 C 和 X 分类的模型(其实就是对 C 和 非C 分类的模型);

再把 ABC 改成 X,这样你的这组数据就是一个二类别的数据了(D 和 X),然后基于这组数据就能 fit 出一个对 D 和 X 分类的模型(其实就是对 D 和 非D 分类的模型);

现在,你有了四个模型(所以 (1) 的回答是,有四组 theta,对应 4 个模型。)

至此,fit 过程就结束了。


现在来了一个新数据,怎么做 predict?把这组数据分别扔给这四个模型,这四个模型相当于给出了这组数据是 ABCD 各自的”概率“。选择最高的作为最终分类结果。


所以:

我理解要想知道一个样本的在四个分类器中的分类得分,那么这个样本就一定是有标签的

不是的,我们把一个样本无差别的扔给四个分类器,都去做 predict,最终选最好的结果作为整体结果。

这其实也是你的问题 3)


最后:

这四个分类器合在一起,构成了 OvR 分类器。这有点儿类似于集成学习。(课程后续会介绍。)


继续加油!:)


0
1
小白一只726
谢谢老师如此细致的回答
2023-07-16
共1条回复

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

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

5949 学习 · 2456 问题

查看课程