MaV*_*aVe 28 classification machine-learning multilabel-classification precision-recall
我想知道如何计算多类多标签分类的精度和召回度量,即分类中有多于两个标签,每个实例可以有多个标签?
pho*_*xis 17
对于多标签分类,您有两种方法可以先考虑以下几点.
度量以每数据点方式计算.对于每个预测标签,仅计算其得分,然后将这些得分聚合在所有数据点上.
还有其他指标.
这里的事情是按标签进行的.对于每个标签,计算度量(例如,精确度,召回),然后聚合这些标签方式度量.因此,在这种情况下,您最终会计算整个数据集上每个标签的精度/召回率,就像对二进制分类一样(因为每个标签都有二进制赋值),然后聚合它.
简单的方法是呈现一般形式.
这只是标准多类等价物的扩展.
在这里 是真正的积极的,假阳性的,真正的消极和假阴性计数分别只对于
标签.
这里$ B $代表任何基于混淆矩阵的度量.在您的情况下,您将插入标准精度和召回公式.对于宏观平均值,您传入每个标签计数然后求和,对于微观平均值,您首先平均计数,然后应用您的度量函数.
你可能有兴趣去看看到了MULT标签指标的代码在这里,该包的一部分mldr在[R .您也可能有兴趣研究Java多标签库MULAN.
这是一篇很好的论文,可以进入不同的指标: 多标签学习算法综述
答案是你必须为每个类计算精度和召回率,然后将它们平均在一起.例如,如果您对A,B和C类进行分类,则您的精度为:
(precision(A) + precision(B) + precision(C)) / 3
Run Code Online (Sandbox Code Playgroud)
同样召回.
我不是专家,但这是我根据以下来源确定的:
https://list.scms.waikato.ac.nz/pipermail/wekalist/2011-March/051575.html http://stats.stackexchange.com/questions/21551/how-to-compute-precision-recall-for -multiclass,多标签分类
小智 5
现在,要计算标签A的召回率,您可以从混淆矩阵读取值并计算:
= TP_A/(TP_A+FN_A)
= TP_A/(Total gold labels for A)
Run Code Online (Sandbox Code Playgroud)现在,让我们计算标签A的精度,您可以从混淆矩阵读取值并计算:
= TP_A/(TP_A+FP_A)
= TP_A/(Total predicted as A)
Run Code Online (Sandbox Code Playgroud)您只需对剩余的标签B和C执行相同的操作.这适用于任何多类别分类问题.
以下是完整的文章,讨论如何计算任何多类分类问题的精度和召回率,包括示例.
归档时间: |
|
查看次数: |
24203 次 |
最近记录: |