对于多标签分类,您有两种方法。首先考虑以下几点。
-
是示例数。
-
是地面真相标签的分配
例..
-
是个
例。
-
是预测的标签
例。
基于示例
指标以每个数据点的方式计算。对于每个预测标签,仅计算其得分,然后将这些得分汇总到所有数据点上。
- 精度=
,预测的正确率之比。分子发现预测向量中有多少个标签与基本事实有共同点,并且比率计算实际有多少个预测真实标签在基本事实中。
- 召回=
,预测了多少实际标签的比率。分子找到预测向量中与地面实数有共同点的标记(如上所述),然后找到与实际标记数的比率,从而得到预测的实际标记的比例。
还有其他指标。
基于标签
在这里,事情是按标签进行的。对于每个标签,计算指标(例如,精度,召回率),然后将这些基于标签的指标进行汇总。因此,在这种情况下,最终要像对二进制分类(每个标签都有一个二进制赋值)那样,对整个数据集上的每个标签计算精度/召回率,然后对其进行汇总。
简单的方法是呈现一般形式。
这只是标准多类等效项的扩展。
宏平均
微平均
在这里
分别是仅对的真阳性,假阳性,真阴性和假阴性计数
标签 。
$ B $代表任何基于混淆矩阵的指标。在您的情况下,您将插入标准精度并调用公式。对于宏观平均值,您传递每个标签计数,然后求和;对于微观平均值,您首先对计数取平均值,然后应用度量函数。
您可能有兴趣在这里查看多标签度量的代码,该代码是R中的mldr软件包的一部分。另外,您可能有兴趣研究Java多标签库MULAN 。
这是一篇介绍不同指标的好论文: 多标签学习算法综述
0
我想知道如何为多类多标签分类(即具有两个以上标签的分类以及每个实例可以有多个标签的分类)计算精度和召回率?