相关视频
对于二进制分类问题,所有这些性能指标都很容易获得。
非得分分类器的数据
为了展示多类别设置中非得分分类器的性能指标,让我们考虑观察到N = 100的分类问题和观察到G = 的五个分类问题:
准确性和加权准确性
通常,将多类准确性定义为正确预测的平均数:
其中 I 是指标函数,如果类匹配,则返回1,否则返回0。
为了对各个类的性能更加敏感,我们可以为每个类分配权重 w\_k ,以使 sum\_ ^ {| G |} w\_k = 1 。单个类别的 w\_k 值越高,该类别的观测值对加权准确性的影响就越大。加权精度取决于:
为了平均加权所有类,我们可以设置 w_k = frac {| G |} , for all k in )。注意,当使用除均等权重之外的任何其他值时,很难找到关于权重的特定组合的合理论证。
计算精度和加权精度
精度很容易计算:
F1分数的微观和宏观平均值
微观平均值和宏观平均值表示在多类设置中解释混淆矩阵的两种方式。在这里,我们需要为每个类 (g_i in G = )计算一个混淆矩阵,以使第 (i )个混淆矩阵考虑类 (g\_i )作为肯定类,而所有其他类 (g\_j )作为 (j neq i )作为否定类。
为了说明为什么增加真实负数会带来问题,请想象有10个类别,每个类别有10个观察值。然后,其中一个类别的混淆矩阵可能具有以下结构:
基于此矩阵,特异性将为 ( frac = 88.9 % ),尽管仅在18个实例中的8个实例中正确预测了1类(精度为44.4%)。
在下文中,我们将使用 TP\_i , FP\_i 和 FN_i 分别在与第(i)个相关联的混淆矩阵中指示真阳性,假阳性和假阴性类。此外,让精度由 P 表示,并由 R 表示。
计算R中的微观和宏观平均值
在这里,我演示了如何在R中计算F1分数的微观平均值和宏观平均值。
我们将使用 包中的 函数 来确定混淆矩阵:
现在, 可以总结所有类的性能:
这些数据表明,总体而言,性能很高。但是,我们的假设分类器对于单个类别(如B类(精度)和E类(精度和召回率))的表现不佳。现在,我们将研究F1得分的微观平均值和宏观平均值如何受到模型预测的影响。
微型平均F1的总体性能
然后,该函数 简单地汇总计数并计算如上定义的F1分数。
值为 相当高,表明整体性能良好。
宏平均F1的类特定性能
由于其中的每个混淆矩阵都 已经存储了一对多的预测性能,因此我们只需要从其中一个矩阵中提取这些值,然后按上述定义计算\(F1 _ }):
值 。
请注意,对于当前数据集,微观平均和宏观平均F1的总体(0.78)和加权精度(0.69)具有相似的关系。
ROC曲线下的面积(AUC)
ROC曲线下的面积(AUC)是评估软分类器分类分离质量的有用工具。在多类别设置中,我们可以根据它们对所有精度召回曲线的关系可视化多类别模型的性能。AUC也可以推广到多类别设置。
一对一的精确召回曲线
我们可以通过绘制K 二进制分类器的性能来可视化多类模型的性能。
该方法基于拟合K 对所有分类器,其中在第(i)次迭代中,组g\_i设置为正类,而所有类g\_j与j neq i 一起被视为否定类。请注意,此方法不应用于绘制常规ROC曲线(TPR与FPR),因为产生的大量负面实例会导致FPR被低估。相反,应考虑精度和召回率:
该图表明setosa可以很好地预测,而 virginica则更难预测。平均AUC 表示该模型很好地分隔了三个类别。
领取专属 10元无门槛券
私享最新 技术干货