多标签分类的评价指标

当前,已有大量的有关多标签分类的评价指标(evaluation metrics)。一般而言,可以分为两大类:(1)一是称为document-pivoted(也可以称为instance-based或者example-based),顾名思义,就是为每个测试文档预测标签;(2)第二类是label-pivoted(也成为label-based),这一类主要聚焦于为每个标签预测文档。每一类又可以包含如下两类预测方法:(1)一是binary predictions,the goal is to make a strict yes/no classification about each test item;(2)二是ranking predictions,the goal is to rank relevant cases above irrelevant cases。因此,我们最终可以得到四种不同的预测任务来评价不同模型的优劣,即:document-binary,document-rank,label-binary,以及label-rank。传统上,多标签分类一般主要强调label-pivoted binary classification task,但是今年来,越来越多的学者开始关注document-pivoted ranking以及binary predictions。

1. 基于排序的评价指标(Rank-based evaluation metrics)

Document-pivoted rankings:就是对于每一个测试文档,我们对语料中所有的标签进行排序,我们的总体目标是rank the relevant labels (其实就是该文档中真实包含的标签)higher than the irrelevant labels(其实就是该文档不包括的标签)。
Label-pivoted rankings:就是对于每一个标签,我们对语料中所有的文档进行排序,我们希望将与该标签更相关的文档排在前面,而不相关的文档排在后面。
为了方便描述,这里我们只介绍Document-pivoted rankings。具体地指标及描述如下:

(1)Average Precision [0-1]:计算公式为:

AveragePrec(h)=1Di=1D1|Yi|yYi|{yYi|rankh(xi,y)rankh(xi,y)}|rankh(xi,y)

这个指标的值是越大越好。文献[5]中对这个指标的描述是:this measure evaluates the average fraction of labels ranked above a particular label lYi which actually are in Yi
(2) One-Error [0-1]:排在最前面的标签是错误的文档数量占语料中文档综述的比例(The percentage of all documents for which the highest-ranked label is incorrect)。假如预料中有 D 篇文档,其中有Dt篇文档排在最前面的标签是错误的(incorrect),则评价指标的值就是 DtD 。更规范化地可以表示为: OneError(h)=1DDi=1{[argmaxyYh(xi,y)]Yi} 。意思就是预测的概率值最大的标签不在真实标签集中的数量。
(3) Ranking Loss:公式表示为:
RankLoss(h)=1DDi=11|Yi||Y¯i|{(y1,y2)|h(xi,y1)h(xi,y2),(y1,y2)Yi×Y¯i} 其中h函数就是预测函数。 Yi 表示第 i 篇文档真正包含的文档的数量,Y¯i表示 Yi 的补集。因此根据公式的意思:相关标签集合与不相关标签集合进行两两比较,然后统计相关标签的预测可能性比不相关标签额预测可能性要小的次数。
(4) Hamming Loss:计算公式为 HammingLoss(h)=1DDi=11C|h(xi)ΔYi| 。其中 h(xi) 表示预测的标签集合。实际上汉明损失就是统计true labels没有出现在predicted label set中的次数。
(5) Coverage:计算公式为: Coverage(h)=1DDi=1[maxyYirankh(xi,y)1] 。其中 rankh(xi,y) 返回的是y标签在预测rank中的排序,越大表示排序越低。公式表示的意思就是所有文档中排序最靠后的真实标签的排序平均值(rank是从1开始,所以后面减了个1)。文献[5]中解释为:Coverage measures how far we need, on the average, to go down the list of labels in order to cover all the possible labels assigned to a document. 这个有点类似于召回率.
(6) Is-ERROR [0-100]: 不满足perfect ranking的文档所占总文档数量的百分比。perfect ranking指的就是与该文档相关的标签都要排在不相关的标签的前面。所以Is-Error这个指标越低越好。
(7) Margin:排序最低的相关标签与排序最高的不相关标签之间的距离,并且在所有文档上进行平均(The difference in ranking between the highest-ranked irrelevant label and the lowest ranked relevant label, averaged across documents)。这个值体现了正负。事实上正值越大越好。

2. Binary Prediction measures

一般所有二元评价指标的基础都是macro-averaged以及micro-averaged F1 scores(简称Macro-F1和Micro-F1)。可以很容易看出,这两个指标的基础都是F1 score。这篇博文里我们暂时只介绍document-pivoted binary,有关label-pivoted binary可以类比document-pivoted binary得到。
首先我们给出如下文档 di 对应的 F1 score的计算公式:

F1(i)=2×Recall(i)×Precision(i)Recall(i)+Precision(i)

假定文档 di 的预测标签集合为 PS 。其中有 TP 个确实为文档 di 的标签最后被正确判定,有 FN 个确实为文档文档 di 的标签最后没有被正确判定(即在预测集合 PS 中没有出现),有 FP 个不属于文档 di 的标签最后被错误判定为其标签,换句话说有 FP 个不属于文档 di 的标签最后出现在预测集合 PS 中。最后有 TN 个本来不属于文档 di 的标签最后确实没有出现在预测标签集合 PS 中。基于此,我们可以计算文档 di 对应的精度(Precision)和召回率(Recall)。
Precision(i)Recall(i)=TPTP+FP=TPTP+FN

具体的关于精度和召回率的计算公式可以参考 这篇博文。当所有文档对应的 F1 scores都计算好以后,我们就可以使用micro-averaging或者macro-averaging来组织这些 F1 scores。

Macro-averaging:每个文档使用自己独自的混淆矩阵(confusion matrix,即 TP FN FP 以及 TN 这四个值)计算 F1 scores,然后直接计算这些 F1 socres的平均值,即

MacroF1=Di=1F1(i)D
D 表示整个语料中文档的数量。

Micro-averaging:在计算好每个文档的混淆矩阵后,将所有D的文档的混淆矩阵对应元素想加,然后在这个集合混淆矩阵上计算 F1 socres。

可以很容易发现,在Micro-F1指标中,拥有更多标签的文档将占有更大的权重,而在Macro-F1指标中,每个文档具有相同的权重。

3. How to create binary predictions based on real-valued predictions

当我们得到了每个标签属于文档 di 的概率以后,我们就可以按照概率值从大到小进行排序,这样越靠近前面的标签越可能属于文档 di 。那么问题来了,如何将这种ranking转换成一系列的binary predictions呢?一般情况下有两种做法:(1)学习一个阈值(threshold),高于这个阈值的就当做该文档的预测标签,低于这个阈值的标签则丢弃;(2)选择一个数值 N ,我们只截取排在最前面的N个标签。
一般情况下,选择一个合适的阈值并不是一件简单的事情,特别是对于大数据集,并且就其本身而言,threshold-selection已经是一个重要的研究问题,有兴趣的可以看看文献[1-3]。本篇博文只介绍几种基于排序的截取方法(rank-based cutoff),如下所示:

(1)Proportional:这里我们考虑label-pivoted和document-pivoted两种情况。对于标签 ci (也就是label-pivoted predictions): N^i=ceil(DTestDTrain×NTraini) 。其中 NTraini 表示训练集中属于标签 ci 的文档数量, DTrain DTest 分别表示训练集和测试集中的文档数量,ceil表示求不小于给定实数的最小整数。对于测试文档 di (也就是document-pivoted predictions): N^i=median(NTraind) ,其中 NTraind 表示训练文档 d 中标签的数量。这里就是取所有文档标签数量的中位数。
(2)Calibrated:以文档为例,就是令N^i等于真实的文档 di 中的标签的数量。
(3)Break-Even-Point(BEP):还是以预测文档的标签集为例,令 N^i 为使得文档 di 对应的 F1 值最大的那个值。

全文终!

[1] Yiming Yang, A study of thresholding strategies for text categorization
[2] Fan R E, Lin C J. A study on threshold selection for multi-label classification
[3] Ioannou M, Sakkas G, Tsoumakas G, et al. Obtaining bipartitions from score vectors for multi-label classification
[4] Timothy N. Rubin et al., Statistical topic models for multi-label document classification
[5] R. E. Schapire and Y. Singer. Boostexter: a boosting-based system for text categorization.
Machine Learning

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页