Logo
0

ovr&ovo

  1. one-vs-rest:对于每个类别,将其他类别视为负样本。因此,当总类别数为NN时,共训练NN个模型(神经网络的softmax也可以理解成这样),预测时将样本特征输入到NN个分类器中,得到NN个概率预测值,选预测值最大的作为最终的预测类别(或者给每个分类器经过sigmoid激活函数,直接输出类别判断,通过投票确定)

  2. one-vs-one:将数据集按类别成对分割,每两个类别训练一个二分类器,故NN个类别训练N(N1)/2N(N-1)/2个分类器,例如现有ABCDA B C D四个类别,对于类别AA和类别BB,训练时只拿数据集中类别为AABB的数据,预测时将样本特征输入到这N(N1)/2N(N-1)/2个分类器中,每个分类器会给出一个预测分类结果,统计全部分类器的结果,按投票多少决定该样本最终分类

两种框架的优缺点:

  1. one-vs-rest: 优点:
    1. 所需分类器较少
    2. 实现简单,直接对全部数据和所有类别进行训练 缺点:
    3. 类别间数据不平衡,每个分类器都是以一个类别的数据面对其他所有类别之和,容易影响分类器的表现
    4. 决策边界较为模糊,即每个分类器的负样本中包含若干个类,多个类的数据点在特征空间中容易出现重合,从而影响分类器判断)❓如何解决多类数据点重叠?💡使用支持向量机的非线性核函数、boosting、bagging
  2. one-vs-one: 优点:
    1. 分类器较简单,每个分类器只负责两个类别的数据
    2. 决策边界清晰,同样是因为每个分类器只处理两类数据 缺点: 分类器数量多,随着类别数量增加,分类器数量呈二次增长

两种方式计算ROC曲线和AUC面积

1. One-vs-Rest(OvR)策略

这是最常用的一种方法。对于每个类别,都将其视为正类,其余类别视为负类,从而转化为一个二分类问题。然后,对每个类别分别计算ROC曲线,并计算AUC值。最后,可以通过对这些AUC值取平均(Macro-average)或加权平均(Weighted-average)来得到整体的多分类AUC值。

示例:假设有三类样本(类别1、类别2、类别3),则需要对每个类别分别计算ROC曲线,得到三条ROC曲线。最后,可以对这三条ROC曲线取平均或加权平均,得到整体的ROC曲线。

2. One-vs-One(OvO)策略

这种方法将多分类问题转化为多个二分类问题,但每次只选择两个类别进行比较。对于N个类别的分类问题,需要构建N(N-1)/2个二分类器。然后,对每个二分类器计算ROC曲线和AUC值,最后对这些AUC值取平均得到多分类AUC值。

示例:对于三类样本(类别1、类别2、类别3),需要构建3个二分类器(类别1 vs 类别2、类别1 vs 类别3、类别2 vs 类别3)。然后,对每个二分类器计算ROC曲线和AUC值,最后取平均值。

macro&micro

对于recallprecisionf1scoreroc_auc_score等评价指标,在多分类的情况下,通常分为两种计算方式macromicro

macro

对每个类别计算相应的指标,例如recall,随后将不同类的指标求均值

micro

进行指标计算拆解,例如:

recall=TPTP+FN\begin{gather} recall=\frac{TP}{TP+FN} \end{gather}

将各个类的TPTPFNFN全部加在一起,算一个整体的recall

© 2025 All rights reservedBuilt with DataHub Cloud

Built with LogoDataHub Cloud