多标签评价指标

编程入门 行业动态 更新时间:2024-10-18 03:33:08

多标签<a href=https://www.elefans.com/category/jswz/34/1767459.html style=评价指标"/>

多标签评价指标

1. 符号系统

记号含义
X \mathcal{X} X d d d 维实例空间 R d \mathbb{R}^d Rd (或 Z d \mathbb{Z}^d Zd)
Y \mathcal{Y} Y标签空间,有 L L L 种标签 { y 1 , y 2 , ⋯ , y L } \{y_1,y_2,\cdots,y_L\} {y1​,y2​,⋯,yL​}
x i \boldsymbol{x}_i xi​ d d d 维特征向量 ( x 1 , x 2 , ⋯ , x d ) ⊤ ( x ∈ X ) (x_1,x_2,\cdots,x_d)^\top(\boldsymbol{x}\in\mathcal{X}) (x1​,x2​,⋯,xd​)⊤(x∈X)
Y Y Y x \boldsymbol{x} x 上存在的标签集合 ( Y ∈ Y ) (Y\in\mathcal{Y}) (Y∈Y)
Y ˉ \bar{Y} Yˉ Y Y Y 在 Y \mathcal{Y} Y 中的补集
S \mathcal{S} S测试集 { ( x i , Y i ) ∣ 1 ≤ i ≤ N } \left\{(\boldsymbol{x}_i, Y_i) | 1 \leq i \leq N\right\} {(xi​,Yi​)∣1≤i≤N}
h ( ⋅ ) h(\cdot) h(⋅) h ( x ) h(\boldsymbol{x}) h(x) 返回对 x \boldsymbol{x} x 的预测中在 x \boldsymbol{x} x 上存在的标签集合
f ( ⋅ , ⋅ ) f(\cdot,\cdot) f(⋅,⋅)实值函数 f : X × Y → R f:\mathcal{X}\times\mathcal{Y}\rightarrow\mathbb{R} f:X×Y→R, f ( x , y ) f(\boldsymbol{x},y) f(x,y) 返回 x \boldsymbol{x} x 上标签 y y y 存在的概率
r a n k f ( ⋅ , ⋅ ) rank_f(\cdot,\cdot) rankf​(⋅,⋅) r a n k f ( x , y ) rank_f(\boldsymbol{x},y) rankf​(x,y) 返回根据 f ( x , ⋅ ) f(\boldsymbol{x},\cdot) f(x,⋅) 的概率降序排列后, y y y 的排名
∣ ⋅ ∣ |\cdot| ∣⋅∣返回集合的基数
⟦ ⋅ ⟧ \llbracket\cdot\rrbracket [[⋅]]如果谓词 π \pi π 成立, ⟦ π ⟧ \llbracket\pi\rrbracket [[π]] 返回 1 1 1,否则返回 0 0 0

2. example-based 与 label-based

  • example-based:先分别评估 h ( ⋅ ) h(\cdot) h(⋅) 对每个测试示例的性能,最后返回在整个测试集上的平均值
  • label-based:先分别评估 h ( ⋅ ) h(\cdot) h(⋅) 在每个标签上的性能,最后返回在所有标签上的 macro/micro-averaged value

3. example-based

3.1 Subset Accuracy

subsetacc ⁡ ( h ) = 1 N ∑ i = 1 N ⟦ h ( x i ) = Y i ⟧ \operatorname{subsetacc}(h)=\frac{1}{N} \sum_{i=1}^N\llbracket h\left(\boldsymbol{x}_i\right)=Y_i\rrbracket subsetacc(h)=N1​i=1∑N​[[h(xi​)=Yi​]]

  • ⟦ h ( x i ) = Y i ⟧ \llbracket h\left(\boldsymbol{x}_i\right)=Y_i\rrbracket [[h(xi​)=Yi​]]:实例 x i \boldsymbol{x}_i xi​ 上真实存在的标签集合与预测出的 x i \boldsymbol{x}_i xi​ 上存在的标签集合完全一致,则返回 1 1 1,否则 0 0 0
  • 这实际上是对传统精度的自然推广,当标签向量尺寸非常大时,这个指标是非常严苛的

3.2 Hamming Loss

hloss ⁡ ( h ) = 1 N ∑ i = 1 N ∣ h ( x i ) Δ Y i ∣ L \operatorname{hloss}(h)=\frac{1}{N} \sum_{i=1}^N\frac{\left|h\left(\boldsymbol{x}_i\right)\Delta Y_i\right|}{L} hloss(h)=N1​i=1∑N​L∣h(xi​)ΔYi​∣​

  • Δ \Delta Δ:集合的对称差, A Δ B = ( A ∪ B ) − ( A ∩ B ) A\Delta B=\left(A\cup B\right)-\left(A\cap B\right) AΔB=(A∪B)−(A∩B)
  • ∣ ⋅ ∣ |\cdot| ∣⋅∣:返回集合的基数
  • 越小越好

示例: 假设有两个样本

  • 对样本一的预测值为 y p r e d = [ 0 , 1 , 1 , 0 , 0 ] y_{pred} = [0, 1, 1, 0, 0] ypred​=[0,1,1,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0]
    • 预测出的 x 1 \boldsymbol{x}_1 x1​ 上存在第 2 2 2 个和第 3 3 3 个标签, h ( x 1 ) h(\boldsymbol{x}_1) h(x1​) 返回标签集合 { l 2 , l 3 } \left\{l_2, l_3\right\} {l2​,l3​}
    • 真实标签集合 Y 1 Y_1 Y1​ 为 { l 1 , l 3 } \left\{l_1, l_3\right\} {l1​,l3​}
    • 对称差 h ( x 1 ) Δ Y 1 h(\boldsymbol{x}_1)\Delta Y_1 h(x1​)ΔY1​ 为 { l 1 , l 2 } \left\{l_1,l_2\right\} {l1​,l2​},其基数为 2 2 2,总标签数 L = 5 L=5 L=5
    • 故这里得到 2 / 5 2/5 2/5
    • 换句话说,预测值与真实标签有 2 2 2 个值不同,标签向量共有 5 5 5 个值,故得到 2 / 5 2/5 2/5
  • 对样本二的预测值为 y p r e d = [ 1 , 1 , 0 , 0 , 0 ] y_{pred} = [1, 1, 0, 0, 0] ypred​=[1,1,0,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1]
    • 预测出的 x 2 \boldsymbol{x}_2 x2​ 上存在第 1 1 1 个和第 2 2 2 个标签, h ( x 2 ) h(\boldsymbol{x}_2) h(x2​) 返回标签集合 { l 1 , l 2 } \left\{l_1, l_2\right\} {l1​,l2​}
    • 真实标签集合 Y 2 Y_2 Y2​ 为 { l 1 , l 3 , l 5 } \left\{l_1, l_3, l_5\right\} {l1​,l3​,l5​}
    • 对称差 h ( x 2 ) Δ Y 2 h(\boldsymbol{x}_2)\Delta Y_2 h(x2​)ΔY2​ 为 { l 2 , l 3 , l 5 } \left\{l_2,l_3,l_5\right\} {l2​,l3​,l5​},其基数为 3 3 3,总标签数 L = 5 L=5 L=5
    • 故这里得到 3 / 5 3/5 3/5
    • 换句话说,预测值与真实标签有 3 3 3 个值不同,标签向量共有 5 5 5 个值,故得到 3 / 5 3/5 3/5
  • 返回 Hamming Loss ⁡ \operatorname{Hamming\ Loss} Hamming Loss 的值为 1 2 × ( 2 5 + 3 5 ) = 1 2 \frac{1}{2}\times(\frac{2}{5}+\frac{3}{5})=\frac{1}{2} 21​×(52​+53​)=21​

3.3 Accuracy, Precision, Recall, F

3.3.1 Accuracy

A c c u r a c y e x a m ( h ) = 1 N ∑ i = 1 N ∣ Y i ∩ h ( x i ) ∣ L Accuracy_{exam}(h)=\frac{1}{N}\sum\limits_{i=1}^N\frac{\left|Y_i\cap h(\boldsymbol{x}_i)\right|}{L} Accuracyexam​(h)=N1​i=1∑N​L∣Yi​∩h(xi​)∣​

  • 越大越好

示例: 假设有两个样本

  • 对样本一的预测值为 y p r e d = [ 0 , 1 , 1 , 0 , 0 ] y_{pred} = [0, 1, 1, 0, 0] ypred​=[0,1,1,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],则在 x 1 \boldsymbol{x}_1 x1​ 上有预测出的标签集合 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 为 { l 2 , l 3 } \left\{l_2,l_3\right\} {l2​,l3​},真实标签集合为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​}
    • Y 1 Y_1 Y1​ 和 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 的交集为 { l 3 } \left\{l_3\right\} {l3​},其基数为 1 1 1
    • 标签总个数 L = 5 L=5 L=5
    • 故此处得 1 / 5 1/5 1/5
  • 对样本二的预测值为 y p r e d = [ 1 , 1 , 0 , 0 , 0 ] y_{pred} = [1, 1, 0, 0, 0] ypred​=[1,1,0,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],则在 x 2 \boldsymbol{x}_2 x2​ 上有预测出的标签集合 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 为 { l 1 , l 2 } \left\{l_1,l_2\right\} {l1​,l2​},真实标签集合为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​}
    • Y 2 Y_2 Y2​ 和 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 的交集为 { l 1 } \left\{l_1\right\} {l1​},其基数为 1 1 1
    • 标签总个数 L = 5 L=5 L=5
    • 故此处得 1 / 5 1/5 1/5
  • 返回 Accuracy ⁡ \operatorname{Accuracy} Accuracy 的值为 1 2 × ( 1 5 + 1 5 ) = 1 5 \frac{1}{2}\times(\frac{1}{5}+\frac{1}{5})=\frac{1}{5} 21​×(51​+51​)=51​

3.3.2 Precision

查准率,是被预测为正例的样本中,真正的正例所占的比例
P r e c i s i o n e x a m ( h ) = 1 N ∑ i = 1 N ∣ Y i ∩ h ( x i ) ∣ ∣ h ( x i ) ∣ Precision_{exam}(h)=\frac{1}{N}\sum\limits_{i=1}^N\frac{\left|Y_i\cap h(\boldsymbol{x}_i)\right|}{\left|h(\boldsymbol{x}_i)\right|} Precisionexam​(h)=N1​i=1∑N​∣h(xi​)∣∣Yi​∩h(xi​)∣​

  • 越大越好

示例: 假设有两个样本

  • 对样本一的预测值为 y p r e d = [ 0 , 1 , 1 , 0 , 0 ] y_{pred} = [0, 1, 1, 0, 0] ypred​=[0,1,1,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],则在 x 1 \boldsymbol{x}_1 x1​ 上有预测出的标签集合 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 为 { l 2 , l 3 } \left\{l_2,l_3\right\} {l2​,l3​},真实标签集合为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​}
    • Y 1 Y_1 Y1​ 和 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 的交集为 { l 3 } \left\{l_3\right\} {l3​},其基数为 1 1 1
    • h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 的基数为 2 2 2
    • 故此处得 1 / 2 1/2 1/2
    • 即,被预测为正的标签中,有一半为真正存在的标签
  • 对样本二的预测值为 y p r e d = [ 1 , 1 , 0 , 0 , 0 ] y_{pred} = [1, 1, 0, 0, 0] ypred​=[1,1,0,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],则在 x 2 \boldsymbol{x}_2 x2​ 上有预测出的标签集合 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 为 { l 1 , l 2 } \left\{l_1,l_2\right\} {l1​,l2​},真实标签集合为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​}
    • Y 2 Y_2 Y2​ 和 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 的交集为 { l 1 } \left\{l_1\right\} {l1​},其基数为 1 1 1
    • h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 的基数为 2 2 2
    • 故此处得 1 / 2 1/2 1/2
  • 返回 Precision ⁡ \operatorname{Precision} Precision 的值为 1 2 × ( 1 2 + 1 2 ) = 1 2 \frac{1}{2}\times(\frac{1}{2}+\frac{1}{2})=\frac{1}{2} 21​×(21​+21​)=21​

3.3.3 Recall

查全率,是真正例中被预测为正例的样本所占的比例
R e c a l l e x a m ( h ) = 1 N ∑ i = 1 N ∣ Y i ∩ h ( x i ) ∣ ∣ Y i ∣ Recall_{exam}(h)=\frac{1}{N}\sum\limits_{i=1}^N\frac{\left|Y_i\cap h(\boldsymbol{x}_i)\right|}{\left|Y_i\right|} Recallexam​(h)=N1​i=1∑N​∣Yi​∣∣Yi​∩h(xi​)∣​

  • 越大越好

示例: 假设有两个样本

  • 对样本一的预测值为 y p r e d = [ 0 , 1 , 1 , 0 , 0 ] y_{pred} = [0, 1, 1, 0, 0] ypred​=[0,1,1,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],则在 x 1 \boldsymbol{x}_1 x1​ 上有预测出的标签集合 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 为 { l 2 , l 3 } \left\{l_2,l_3\right\} {l2​,l3​},真实标签集合为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​}
    • Y 1 Y_1 Y1​ 和 h ( x 1 ) h\left(\boldsymbol{x}_1\right) h(x1​) 的交集为 { l 3 } \left\{l_3\right\} {l3​},其基数为 1 1 1
    • Y 1 Y_1 Y1​ 的基数为 2 2 2
    • 故此处得 1 / 2 1/2 1/2
    • 即, x i \boldsymbol{x}_i xi​ 上真正的存在的标签中,有一半被查 (预测) 出来了
  • 对样本二的预测值为 y p r e d = [ 1 , 1 , 0 , 0 , 0 ] y_{pred} = [1, 1, 0, 0, 0] ypred​=[1,1,0,0,0],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],则在 x 2 \boldsymbol{x}_2 x2​ 上有预测出的标签集合 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 为 { l 1 , l 2 } \left\{l_1,l_2\right\} {l1​,l2​},真实标签集合为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​}
    • Y 2 Y_2 Y2​ 和 h ( x 2 ) h\left(\boldsymbol{x}_2\right) h(x2​) 的交集为 { l 1 } \left\{l_1\right\} {l1​},其基数为 1 1 1
    • Y 2 Y_2 Y2​ 的基数为 3 3 3
    • 故此处得 1 / 3 1/3 1/3
  • 返回 Recall ⁡ \operatorname{Recall} Recall 的值为 1 2 × ( 1 2 + 1 3 ) = 5 12 \frac{1}{2}\times(\frac{1}{2}+\frac{1}{3})=\frac{5}{12} 21​×(21​+31​)=125​

3.3.4 F

F 值是对查准率和查全率的综合考量,不同场景下查准和查全的重要程度不同,参数 β \beta β 用来调整查准和查全的权值,当 β \beta β 为 1 1 1 时,退化为标准的 F 1 F_1 F1​ 值
F e x a m β ( h ) = ( 1 + β 2 ) ⋅ P r e c i s i o n e x a m ( h ) ⋅ R e c a l l e x a m ( h ) β 2 ⋅ P r e c i s i o n e x a m ( h ) + R e c a l l e x a m ( h ) F_{exam}^\beta(h)=\frac{(1+\beta^2)\cdot Precision_{exam}(h)\cdot Recall_{exam}(h)}{\beta^2\cdot Precision_{exam}(h)+Recall_{exam}(h)} Fexamβ​(h)=β2⋅Precisionexam​(h)+Recallexam​(h)(1+β2)⋅Precisionexam​(h)⋅Recallexam​(h)​

  • β > 0 \beta > 0 β>0 度量了查全率对查准率的相对重要性
  • β > 1 \beta > 1 β>1 时查全率有更大影响; β < 1 \beta < 1 β<1 时查准率有更大影响
  • β = 1 \beta = 1 β=1 时退化为标准的 F 1 F_1 F1​ 值
  • F F F 越大越好

示例: 在前文的例子中有 Precision ⁡ = 1 2 \operatorname{Precision} = \frac{1}{2} Precision=21​, Recall ⁡ = 5 12 \operatorname{Recall} = \frac{5}{12} Recall=125​

  • 则 F 1 = 2 × Precision ⁡ × Recall ⁡ Precision ⁡ + Recall ⁡ = 5 / 11 F_1 = \frac{2\times\operatorname{Precision}\times\operatorname{Recall}}{\operatorname{Precision}+\operatorname{Recall}}=5/11 F1​=Precision+Recall2×Precision×Recall​=5/11

3.4 One-error

one-error ⁡ ( f ) = 1 N ∑ i = 1 N ⟦ [ arg ⁡ max ⁡ y ∈ Y f ( x i , y ) ] ∉ Y i ⟧ \operatorname{one-error}\left(f\right)=\frac{1}{N}\sum\limits_{i=1}^N\llbracket\left[\arg\max\limits_{y\in\mathcal{Y}}f\left(\boldsymbol{x}_i,y\right)\right]\notin Y_i\rrbracket one-error(f)=N1​i=1∑N​[[[argy∈Ymax​f(xi​,y)]∈/Yi​]]

  • ⟦ [ arg ⁡ max ⁡ y ∈ Y f ( x i , y ) ] ∉ Y i ⟧ \llbracket\left[\arg\max\limits_{y\in\mathcal{Y}}f\left(\boldsymbol{x}_i,y\right)\right]\notin Y_i\rrbracket [[[argy∈Ymax​f(xi​,y)]∈/Yi​]]:在预测中,最有可能存在于 x i \boldsymbol{x}_i xi​ 上的标签 y y y 若并不存在于真实标签集合中,则记 1 1 1 分,否则记 0 0 0 分
  • 越小越好

示例: 假设有两个样本

  • 对样本一的预测值为 y s c o r e = [ 0.3 , 0.4 , 0.5 , 0.1 , 0.15 ] y_{score} = [0.3, 0.4, 0.5, 0.1, 0.15] yscore​=[0.3,0.4,0.5,0.1,0.15],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0], x 1 \boldsymbol{x}_1 x1​ 上的真实标签集合 Y 1 Y_1 Y1​ 为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​}
    • 预测结果认为标签 l 3 l_3 l3​ 最有可能存在,因为其概率最大,为 0.5 0.5 0.5
    • 有 l 3 ∈ Y 1 l_3\in Y_1 l3​∈Y1​,该标签确实存在,故记 0 0 0 分
  • 对样本二的预测值为 y s c o r e = [ 0.4 , 0.5 , 0.7 , 0.2 , 0.6 ] y_{score} = [0.4, 0.5, 0.7, 0.2, 0.6] yscore​=[0.4,0.5,0.7,0.2,0.6],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1], x 2 \boldsymbol{x}_2 x2​ 上的真实标签集合 Y 2 Y_2 Y2​ 为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​}
    • 预测结果认为标签 l 3 l_3 l3​ 最有可能存在,因为其概率最大,为 0.7 0.7 0.7
    • 有 l 3 ∈ Y 2 l_3\in Y_2 l3​∈Y2​,该标签确实存在,故记 0 0 0 分
  • 返回 one-error ⁡ \operatorname{one-error} one-error 的值为 1 2 × ( 0 + 0 ) = 0 \frac{1}{2}\times(0+0)=0 21​×(0+0)=0

3.5 Coverage

coverage ⁡ ( f ) = 1 N ∑ i = 1 N ( max ⁡ y ∈ Y i r a n k f ( x i , y ) − 1 ) \operatorname{coverage}\left(f\right)=\frac{1}{N}\sum\limits_{i=1}^N\left(\max\limits_{y\in Y_i}rank_f\left(\boldsymbol{x}_i,y\right)-1\right) coverage(f)=N1​i=1∑N​(y∈Yi​max​rankf​(xi​,y)−1)

  • max ⁡ y ∈ Y i r a n k f ( x i , y ) − 1 \max\limits_{y\in Y_i}rank_f\left(\boldsymbol{x}_i,y\right)-1 y∈Yi​max​rankf​(xi​,y)−1:按预测结果概率降序排列后, x i \boldsymbol{x}_i xi​ 上真实标签中最大的排名减 1 1 1
  • 在 python 的 sklearn 库中对 coverage 的实现没有减 1 1 1,我也不太理解这里公式中为什么要减 1 1 1,现有以下猜测
    • 从程序语言的角度来说,通常从 0 0 0 开始计数,因此第 i i i 个数的索引实际上是 i − 1 i-1 i−1,故需要减 1 1 1,所以公式中减 1 1 1 了
    • 从边界情况来说,如果一个标签都不存在,那么第 0 0 0 个位置处就将 1 1 1 覆盖完了,再减 1 1 1 就是 − 1 -1 −1,不太妥当,所以 sklearn 库中的实现没有减 1 1 1?
    • 无论如何,减不减 1 1 1,不影响对效果的评价,关键是要保持一致
  • 越小越好

示例: 假设有两个样本

  • 对样本一的预测值为 y s c o r e = [ 0.3 , 0.4 , 0.5 , 0.1 , 0.15 ] y_{score} = [0.3, 0.4, 0.5, 0.1, 0.15] yscore​=[0.3,0.4,0.5,0.1,0.15],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],按概率排序有 [ 0.5 , 0.4 , 0.3 , 0.15 , 0.1 ] [0.5, 0.4, 0.3, 0.15, 0.1] [0.5,0.4,0.3,0.15,0.1],对应的真实标签变为 [ 1 , 0 , 1 , 0 , 0 ] [1, 0, 1, 0, 0] [1,0,1,0,0]
    • 真实标签的最大排名为 3 3 3,即得 3 − 1 = 2 3-1=2 3−1=2
    • 换句话说,前 3 3 3 个标签将 1 1 1 全部覆盖,这里得到 3 − 1 = 2 3-1=2 3−1=2
  • 对样本二的预测值为 y s c o r e = [ 0.4 , 0.5 , 0.7 , 0.2 , 0.6 ] y_{score} = [0.4, 0.5, 0.7, 0.2, 0.6] yscore​=[0.4,0.5,0.7,0.2,0.6],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],按概率排序有 [ 0.7 , 0.6 , 0.5 , 0.4 , 0.2 ] [0.7, 0.6, 0.5, 0.4, 0.2] [0.7,0.6,0.5,0.4,0.2],对应的真实标签变为 [ 1 , 1 , 0 , 1 , 0 ] [1, 1, 0, 1, 0] [1,1,0,1,0]
    • 真实标签的最大排名为 4 4 4,即得 4 − 1 = 3 4-1=3 4−1=3
    • 前 4 4 4 个标签将 1 1 1 全部覆盖,这里得到 4 − 1 = 3 4-1=3 4−1=3
  • 返回 coverage ⁡ \operatorname{coverage} coverage 的值为 1 2 × ( 2 + 3 ) = 2.5 \frac{1}{2}\times(2+3)=2.5 21​×(2+3)=2.5

3.6 Ranking Loss

rloss ⁡ ( f ) = 1 N ∑ i = 1 N 1 ∣ Y i ∣ ∣ Y ˉ i ∣ ∣ { ( y ′ , y ′ ′ ) ∣ f ( x i , y ′ ) ≤ f ( x i , y ′ ′ ) , ( y ′ , y ′ ′ ) ∈ Y i × Y ˉ i } ∣ \operatorname{rloss}(f)=\frac{1}{N} \sum_{i=1}^N \frac{1}{\left|Y_i\right|\left|\bar{Y}_i\right|} \left|\left\{\left(y^{\prime}, y^{\prime \prime}\right) \mid f\left(\boldsymbol{x}_i, y^{\prime}\right) \leq f\left(\boldsymbol{x}_i, y^{\prime \prime}\right), \quad\left(y^{\prime}, y^{\prime \prime}\right) \in Y_i \times \bar{Y}_i\right\} \right| rloss(f)=N1​i=1∑N​∣Yi​∣ ​Yˉi​ ​1​ ​{(y′,y′′)∣f(xi​,y′)≤f(xi​,y′′),(y′,y′′)∈Yi​×Yˉi​}

  • Y i Y_i Yi​: x i \boldsymbol{x}_i xi​ 上存在的标签集合
  • Y ˉ i \bar{Y}_i Yˉi​: Y i Y_i Yi​ 对于所有标签的补集,即, x i \boldsymbol{x}_i xi​ 上不存在的标签集合
  • 1 ∣ Y i ∣ ∣ Y ˉ i ∣ ∣ { ( y ′ , y ′ ′ ) ∣ f ( x i , y ′ ) ≤ f ( x i , y ′ ′ ) , ( y ′ , y ′ ′ ) ∈ Y i × Y ˉ i } ∣ \frac{1}{\left|Y_i\right|\left|\bar{Y}_i\right|} \left|\left\{\left(y^{\prime}, y^{\prime \prime}\right) \mid f\left(\boldsymbol{x}_i, y^{\prime}\right) \leq f\left(\boldsymbol{x}_i, y^{\prime \prime}\right), \quad\left(y^{\prime}, y^{\prime \prime}\right) \in Y_i \times \bar{Y}_i\right\} \right| ∣Yi​∣∣Yˉi​∣1​ ​{(y′,y′′)∣f(xi​,y′)≤f(xi​,y′′),(y′,y′′)∈Yi​×Yˉi​} ​:即,由为 0 0 0 的标签集合与为 1 1 1 的标签集合组成的二元组中,将不存在的标签排在存在的标签前面的二元组所占的比例
  • 越小越好

示例: 假设有两个样本

  • 对样本一的预测值为 y s c o r e = [ 0.3 , 0.4 , 0.5 , 0.1 , 0.15 ] y_{score} = [0.3, 0.4, 0.5, 0.1, 0.15] yscore​=[0.3,0.4,0.5,0.1,0.15],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],按概率排序后得到 [ 0.5 , 0.4 , 0.3 , 0.15 , 0.1 ] [0.5, 0.4, 0.3, 0.15, 0.1] [0.5,0.4,0.3,0.15,0.1],对应的真实标签变为 [ 1 , 0 , 1 , 0 , 0 ] [1, 0, 1, 0, 0] [1,0,1,0,0],从前往后分别为 l 3 , l 2 , l 1 , l 5 , l 4 l_3,l_2,l_1,l_5,l_4 l3​,l2​,l1​,l5​,l4​
    • Y 1 Y_1 Y1​ 为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​},其基数为 2 2 2
    • Y ˉ 1 \bar{Y}_1 Yˉ1​ 为 { l 2 , l 4 , l 5 } \left\{l_2,l_4,l_5\right\} {l2​,l4​,l5​},其基数为 3 3 3
    • Y 1 × Y ˉ 1 Y_1\times\bar{Y}_1 Y1​×Yˉ1​ 为一个含有 6 6 6 个二元组的集合 { ( l 1 , l 2 ) , ( l 1 , l 4 ) , ( l 1 , l 5 ) , ( l 3 , l 2 ) , ( l 3 , l 4 ) , ( l 3 , l 5 ) } \left\{\left(l_1,l_2\right),\left(l_1,l_4\right),\left(l_1,l_5\right),\left(l_3,l_2\right),\left(l_3,l_4\right),\left(l_3,l_5\right)\right\} {(l1​,l2​),(l1​,l4​),(l1​,l5​),(l3​,l2​),(l3​,l4​),(l3​,l5​)}
    • 在 Y 1 × Y ˉ 1 Y_1\times\bar{Y}_1 Y1​×Yˉ1​ 的 6 6 6 个二元组中元素的顺序与 l 3 , l 2 , l 1 , l 5 , l 4 l_3,l_2,l_1,l_5,l_4 l3​,l2​,l1​,l5​,l4​ 中元素顺序不同的只有
      • ( l 1 , l 2 ) \left(l_1,l_2\right) (l1​,l2​)
    • 则这里得到 1 / 6 1/6 1/6
    • 换句话说,分别选择一个存在的标签和不存在的标签,一共有 6 6 6 种可能。在按照预测的结果,只有 l 1 l_1 l1​ 和 l 2 l_2 l2​ 这两个标签被弄错 (认为本不存在的标签 l 2 l_2 l2​ 出现在 x 1 \boldsymbol{x}_1 x1​ 上的概率比本就存在的标签 l 1 l_1 l1​ 出现的概率更大)
  • 对样本二的预测值为 y s c o r e = [ 0.4 , 0.5 , 0.7 , 0.2 , 0.6 ] y_{score} = [0.4, 0.5, 0.7, 0.2, 0.6] yscore​=[0.4,0.5,0.7,0.2,0.6],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],按概率排序有 [ 0.7 , 0.6 , 0.5 , 0.4 , 0.2 ] [0.7, 0.6, 0.5, 0.4, 0.2] [0.7,0.6,0.5,0.4,0.2],对应的真实标签变为 [ 1 , 1 , 0 , 1 , 0 ] [1, 1, 0, 1, 0] [1,1,0,1,0],从前往后分别为 l 3 , l 5 , l 2 , l 1 , l 4 l_3,l_5,l_2,l_1,l_4 l3​,l5​,l2​,l1​,l4​
    • Y 2 Y_2 Y2​ 为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​},其基数为 3 3 3
    • Y ˉ 2 \bar{Y}_2 Yˉ2​ 为 { l 2 , l 4 } \left\{l_2,l_4\right\} {l2​,l4​},其基数为 2 2 2
    • Y 2 × Y ˉ 2 Y_2\times\bar{Y}_2 Y2​×Yˉ2​ 为一个含有 6 6 6 个二元组的集合 { ( l 1 , l 2 ) , ( l 1 , l 4 ) , ( l 3 , l 2 ) , ( l 3 , l 4 ) , ( l 5 , l 2 ) , ( l 5 , l 4 ) } \left\{\left(l_1,l_2\right),\left(l_1,l_4\right),\left(l_3,l_2\right),\left(l_3,l_4\right),\left(l_5,l_2\right),\left(l_5,l_4\right)\right\} {(l1​,l2​),(l1​,l4​),(l3​,l2​),(l3​,l4​),(l5​,l2​),(l5​,l4​)}
    • 在 Y 2 × Y ˉ 2 Y_2\times\bar{Y}_2 Y2​×Yˉ2​ 的 6 6 6 个二元组中元素的顺序与 l 3 , l 5 , l 2 , l 1 , l 4 l_3,l_5,l_2,l_1,l_4 l3​,l5​,l2​,l1​,l4​ 中元素顺序不同的只有
      • ( l 1 , l 2 ) \left(l_1,l_2\right) (l1​,l2​)
    • 则这里得到 1 / 6 1/6 1/6
  • 返回 Ranking Loss ⁡ \operatorname{Ranking\ Loss} Ranking Loss 的值为 1 2 × ( 1 6 + 1 6 ) = 1 6 \frac{1}{2}\times(\frac{1}{6}+\frac{1}{6})=\frac{1}{6} 21​×(61​+61​)=61​

3.7 Average Precision

avgprec ⁡ ( f ) = 1 N ∑ i = 1 N 1 ∣ Y i ∣ ∑ y ∈ Y i ∣ { y ′ ∣ rank ⁡ f ( x , y ′ ) ≤ rank ⁡ f ( x i , y ) , y ′ ∈ Y i } ∣ rank ⁡ f ( x i , y ) \operatorname{avgprec}(f)=\frac{1}{N} \sum_{i=1}^N \frac{1}{\left|Y_i\right|} \sum_{y \in Y_i} \frac{\left|\left\{y^{\prime} \mid \operatorname{rank}_f\left(\boldsymbol{x}, y^{\prime}\right) \leq \operatorname{rank}_f\left(\boldsymbol{x}_i, y\right), y^{\prime} \in Y_i\right\}\right|}{\operatorname{rank}_f\left(\boldsymbol{x}_i, y\right)} avgprec(f)=N1​i=1∑N​∣Yi​∣1​y∈Yi​∑​rankf​(xi​,y)∣{y′∣rankf​(x,y′)≤rankf​(xi​,y),y′∈Yi​}∣​

  • ∣ { y ′ ∣ rank ⁡ f ( x , y ′ ) ≤ rank ⁡ f ( x i , y ) , y ′ ∈ Y i } ∣ rank ⁡ f ( x i , y ) \frac{\left|\left\{y^{\prime} \mid \operatorname{rank}_f\left(\boldsymbol{x}, y^{\prime}\right) \leq \operatorname{rank}_f\left(\boldsymbol{x}_i, y\right), y^{\prime} \in Y_i\right\}\right|}{\operatorname{rank}_f\left(\boldsymbol{x}_i, y\right)} rankf​(xi​,y)∣{y′∣rankf​(x,y′)≤rankf​(xi​,y),y′∈Yi​}∣​:即,对于值为 1 1 1 的某个标签,在根据预测出的概率降序排序后,排在它前面的 (含它本身) 值为 1 1 1 的标签个数比上它在该排序中的排名。
  • 越大越好

示例: 假设有两个样本

  • 对样本一的预测值为 y s c o r e = [ 0.3 , 0.4 , 0.5 , 0.1 , 0.15 ] y_{score} = [0.3, 0.4, 0.5, 0.1, 0.15] yscore​=[0.3,0.4,0.5,0.1,0.15],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],按概率排序有 [ 0.5 , 0.4 , 0.3 , 0.15 , 0.1 ] [0.5, 0.4, 0.3, 0.15, 0.1] [0.5,0.4,0.3,0.15,0.1],对应的真实标签变为 [ 1 , 0 , 1 , 0 , 0 ] [1, 0, 1, 0, 0] [1,0,1,0,0],从前往后分别为 l 3 , l 2 , l 1 , l 5 , l 4 l_3,l_2,l_1,l_5,l_4 l3​,l2​,l1​,l5​,l4​
    • Y 1 Y_1 Y1​ 为 { l 1 , l 3 } \left\{l_1,l_3\right\} {l1​,l3​}
    • l 1 l_1 l1​ 的排名为 3 3 3,排在它之前的 (包含它自己) 真实存在标签有 l 3 l_3 l3​ 和 l 1 l_1 l1​ 共 2 2 2 个,即有 2 / 3 2/3 2/3
    • l 3 l_3 l3​ 的排名为 1 1 1,排在它之前的 (包含它自己) 真实存在标签只有 l 3 l_3 l3​ 共 1 1 1 个,即有 1 / 1 1/1 1/1
    • 这里总共得到 1 2 ( 2 3 + 1 ) = 5 6 \frac{1}{2}(\frac{2}{3}+1)=\frac{5}{6} 21​(32​+1)=65​
  • 对样本二的预测值为 y s c o r e = [ 0.4 , 0.5 , 0.7 , 0.2 , 0.6 ] y_{score} = [0.4, 0.5, 0.7, 0.2, 0.6] yscore​=[0.4,0.5,0.7,0.2,0.6],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 1 ] y_{true} =[1, 0, 1, 0, 1] ytrue​=[1,0,1,0,1],按概率排序有 [ 0.7 , 0.6 , 0.5 , 0.4 , 0.2 ] [0.7, 0.6, 0.5, 0.4, 0.2] [0.7,0.6,0.5,0.4,0.2],对应的真实标签变为 [ 1 , 1 , 0 , 1 , 0 ] [1, 1, 0, 1, 0] [1,1,0,1,0],从前往后分别为 l 3 , l 5 , l 2 , l 1 , l 4 l_3,l_5,l_2,l_1,l_4 l3​,l5​,l2​,l1​,l4​
    • Y 2 Y_2 Y2​ 为 { l 1 , l 3 , l 5 } \left\{l_1,l_3,l_5\right\} {l1​,l3​,l5​}
    • l 1 l_1 l1​ 的排名为 4 4 4,排在它之前的 (包含它自己) 真实存在标签有 l 3 l_3 l3​, l 5 l_5 l5​ 和 l 1 l_1 l1​ 共 3 3 3 个,即有 3 / 4 3/4 3/4
    • l 3 l_3 l3​ 的排名为 1 1 1,排在它之前的 (包含它自己) 真实存在标签只有 l 3 l_3 l3​ 共 1 1 1 个,即有 1 / 1 = 1 1/1=1 1/1=1
    • l 5 l_5 l5​ 的排名为 2 2 2,排在它之前的 (包含它自己) 真实存在标签有 l 3 l_3 l3​ 和 l 5 l_5 l5​ 共 2 2 2 个,即有 2 / 2 = 1 2/2=1 2/2=1
    • 这里总共得到 1 3 ( 3 4 + 1 + 1 ) = 11 12 \frac{1}{3}(\frac{3}{4}+1+1)=\frac{11}{12} 31​(43​+1+1)=1211​
  • 返回 average precision ⁡ \operatorname{average\ precision} average precision 的值为 1 2 × ( 5 6 + 11 12 ) = 7 8 \frac{1}{2}\times(\frac{5}{6}+\frac{11}{12})=\frac{7}{8} 21​×(65​+1211​)=87​

3.8 NDCG

N D C G ( f ) = D C G ( f ) I D C G = ∑ i = 1 k y ^ i log ⁡ ( 1 + l ) ∑ i = 1 m 1 log ⁡ ( 1 + l ) NDCG\left(f\right)=\frac{DCG\left(f\right)}{IDCG}=\frac{\sum\limits_{i=1}^k\frac{\hat{y}_i}{\log\left(1+l\right)}}{\sum\limits_{i=1}^m\frac{1}{\log\left(1+l\right)}} NDCG(f)=IDCGDCG(f)​=i=1∑m​log(1+l)1​i=1∑k​log(1+l)y^​i​​​

  • NDCG 是 DCG 的归一化
  • DCG:即,根据预测出的概率进行排序,对该排序的打分
  • IDCG:即,完全预测正确时的完美评分
  • 越大越好

示例: 假设有多个样本,可以直接将标签矩阵展开成标签向量

  • 预测值为 y s c o r e = [ 0.3 , 0.4 , 0.5 , 0.1 , 0.15 ] y_{score} = [0.3, 0.4, 0.5, 0.1, 0.15] yscore​=[0.3,0.4,0.5,0.1,0.15],真实标签向量为 y t r u e = [ 1 , 0 , 1 , 0 , 0 ] y_{true} = [1, 0, 1, 0, 0] ytrue​=[1,0,1,0,0],按概率排序有 [ 0.5 , 0.4 , 0.3 , 0.15 , 0.1 ] [0.5, 0.4, 0.3, 0.15, 0.1] [0.5,0.4,0.3,0.15,0.1],对应的真实标签变为 [ 1 , 0 , 1 , 0 , 0 ] [1, 0, 1, 0, 0] [1,0,1,0,0],完美排序标签为 [ 1 , 1 , 0 , 0 , 0 ] [1, 1, 0, 0, 0] [1,1,0,0,0]
    • DCG 得分为 1 log ⁡ ( 1 + 1 ) + 1 log ⁡ ( 1 + 3 ) \frac{1}{\log\left(1+1\right)}+\frac{1}{\log\left(1+3\right)} log(1+1)1​+log(1+3)1​,因为两个 1 1 1 的位置在第 1 1 1 位和第 3 3 3 位
    • IDCG 得分为 1 log ⁡ ( 1 + 1 ) + 1 log ⁡ ( 1 + 2 ) \frac{1}{\log\left(1+1\right)}+\frac{1}{\log\left(1+2\right)} log(1+1)1​+log(1+2)1​
    • 得到 N D C G = D C G I D C G NDCG=\frac{DCG}{IDCG} NDCG=IDCGDCG​

3.9 peak-F1

当 β \beta β 取值为 1 1 1 时, F β F^\beta Fβ 退化为标准 F 1 F_1 F1​,此时查准率和查全率一样重要。对得到的一个预测结果,按概率进行降序排序后,依次将每个标签预测为 1 1 1,可以得到一系列的 F 1 F_1 F1​ 值,其中最大的那个,就记做 peak-F1

  • 越大越好

4. label-based

针对每个标签可以由一个二元分类器 h ( ⋅ ) h(\cdot) h(⋅) 得到以下四个度量性能的指标,下图被称为分类结果混淆矩阵。

T P j = ∣ { x i ∣ y j ∈ Y i ∧ y j ∈ h ( x i ) , 1 ≤ i ≤ p } ∣ ; F P j = ∣ { x i ∣ y j ∉ Y i ∧ y j ∈ h ( x i ) , 1 ≤ i ≤ p } ∣ T N j = ∣ { x i ∣ y j ∉ Y i ∧ y j ∉ h ( x i ) , 1 ≤ i ≤ p } ∣ ; F N j = ∣ { x i ∣ y j ∈ Y i ∧ y j ∉ h ( x i ) , 1 ≤ i ≤ p } ∣ \begin{gathered} T P_j=\left|\left\{\boldsymbol{x}_i \mid y_j \in Y_i \wedge y_j \in h\left(\boldsymbol{x}_i\right), 1 \leq i \leq p\right\}\right| ; \quad F P_j=\left|\left\{\boldsymbol{x}_i \mid y_j \notin Y_i \wedge y_j \in h\left(\boldsymbol{x}_i\right), 1 \leq i \leq p\right\}\right| \\ T N_j=\left|\left\{\boldsymbol{x}_i \mid y_j \notin Y_i \wedge y_j \notin h\left(\boldsymbol{x}_i\right), 1 \leq i \leq p\right\}\right| ; \quad F N_j=\left|\left\{\boldsymbol{x}_i \mid y_j \in Y_i \wedge y_j \notin h\left(\boldsymbol{x}_i\right), 1 \leq i \leq p\right\}\right| \end{gathered} TPj​=∣{xi​∣yj​∈Yi​∧yj​∈h(xi​),1≤i≤p}∣;FPj​=∣{xi​∣yj​∈/Yi​∧yj​∈h(xi​),1≤i≤p}∣TNj​=∣{xi​∣yj​∈/Yi​∧yj​∈/h(xi​),1≤i≤p}∣;FNj​=∣{xi​∣yj​∈Yi​∧yj​∈/h(xi​),1≤i≤p}∣​
前文的精度,查准率,查全率可以根据这 4 4 4 个指标进行定义

  1. Accuracy
    A c c u r a c y = T P + T N T P + F P + T N + F N Accuracy=\frac{TP+TN}{TP+FP+TN+FN} Accuracy=TP+FP+TN+FNTP+TN​
  2. Precision
    P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP​
  3. Recall
    R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP​

4.1 Macro-averaging 与 Micro-averaging

令 B ( T P j , F P j , T N j , F N j ) B(TP_j,FP_j,TN_j,FN_j) B(TPj​,FPj​,TNj​,FNj​) 为一种特定的二分类度量,即 B ∈ { A c c u r a c y , P r e c i s i o n , R e c a l l , F β } B\in\left\{Accuracy, Precision, Recall, F^\beta\right\} B∈{Accuracy,Precision,Recall,Fβ},由此可以得到 Macro-averaging 与 Micro-averaging 两种评价指标

4.1.1 Macro-averaging

B macro  ( h ) = 1 L ∑ j = 1 L B ( T P j , F P j , T N j , F N j ) B_{\text {macro }}(h)=\frac{1}{L} \sum_{j=1}^L B\left(T P_j, F P_j, T N_j, F N_j\right) Bmacro ​(h)=L1​j=1∑L​B(TPj​,FPj​,TNj​,FNj​)

  • 即,先分别求各个标签的二分类度量,再求均值

4.1.2 Micro-averaging

B micro  ( h ) = B ( ∑ j = 1 L T P j , ∑ j = 1 L F P j , ∑ j = 1 L T N j , ∑ j = 1 L F N j ) B_{\text {micro }}(h)=B\left(\sum_{j=1}^L T P_j, \sum_{j=1}^L F P_j, \sum_{j=1}^L T N_j, \sum_{j=1}^L F N_j\right) Bmicro ​(h)=B(j=1∑L​TPj​,j=1∑L​FPj​,j=1∑L​TNj​,j=1∑L​FNj​)

  • 即,先将所有标签的 T P j , F P j , T N j , F N j TP_j,FP_j,TN_j,FN_j TPj​,FPj​,TNj​,FNj​ 各自累加起来,得到一个混淆矩阵,再求得二分类度量

4.2 AUCmacro 与 AUCmicro

4.2.1 单标签的 AUC

AUC 是 Area Under ROC Curve 的缩写,而 ROC 是以假正例率为横轴,真正例率为纵轴所绘制出的图线,具体的绘图过程如下,

  1. 按学习器预测结果进行排序
  2. 将分类阈值设为最大,所有样例被分为反例,此时可以得到一个混淆矩阵,因而可以绘制出 ROC 图中的一个点 (0, 0)
  3. 减小阈值,即依次将阈值设为每个样例的预测值,每次可以在 ROC 图中绘制一个点
  4. 用线段连接相邻点即可

  1. 假正例率: T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP​,即,真正例中被预测为正例的比例
  2. 真正例率: F P R = F P T N + F P FPR=\frac{FP}{TN+FP} FPR=TN+FPFP​,即,真反例中被预测为正例的反例
  3. A U C AUC AUC 为 0.5 0.5 0.5 时相当于随机猜测

4.2.2 AUCmacro

A U C macro  = 1 L ∑ j = 1 L A U C j = 1 L ∑ j = 1 L ∣ { ( x ′ , x ′ ′ ) ∣ f ( x ′ , y j ) ≥ f ( x ′ ′ , y j ) , ( x ′ , x ′ ′ ) ∈ Z j × Z ˉ j } ∣ ∣ Z j ∣ ∣ Z ˉ j ∣ A U C_{\text {macro }}=\frac{1}{L} \sum_{j=1}^L A U C_j=\frac{1}{L} \sum_{j=1}^L \frac{\left|\left\{\left(\boldsymbol{x}^{\prime}, \boldsymbol{x}^{\prime \prime}\right) \mid f\left(\boldsymbol{x}^{\prime}, y_j\right) \geq f\left(\boldsymbol{x}^{\prime \prime}, y_j\right),\left(\boldsymbol{x}^{\prime}, \boldsymbol{x}^{\prime \prime}\right) \in \mathcal{Z}_j \times \bar{\mathcal{Z}}_j\right\}\right|}{\left|\mathcal{Z}_j\right|\left|\bar{\mathcal{Z}}_j\right|} AUCmacro ​=L1​j=1∑L​AUCj​=L1​j=1∑L​∣Zj​∣ ​Zˉj​ ​{(x′,x′′)∣f(x′,yj​)≥f(x′′,yj​),(x′,x′′)∈Zj​×Zˉj​} ​​

  • 其中, Z j = { x i ∣ y j ∈ Y i , 1 ≤ i ≤ N } ( Z ˉ j = { x i ∣ y j ∉ Y i , 1 ≤ i ≤ N } ) \mathcal{Z}_j=\left\{\boldsymbol{x}_i\mid y_j\in Y_i, 1\leq i\leq N\right\}(\bar{\mathcal{Z}}_j=\left\{\boldsymbol{x}_i\mid y_j\notin Y_i, 1\leq i\leq N\right\}) Zj​={xi​∣yj​∈Yi​,1≤i≤N}(Zˉj​={xi​∣yj​∈/Yi​,1≤i≤N})
  • 即,针对每个标签分别求出 A U C AUC AUC 指标,再求均值
  • 可以看出计算单个标签 A U C AUC AUC 的形式与 Ranking Loss ⁡ \operatorname{Ranking\ Loss} Ranking Loss 的式子非常相似,区别在于
    • AUC ⁡ \operatorname{AUC} AUC 是计算将正例排在负例前的奖励分
    • Ranking Loss ⁡ \operatorname{Ranking\ Loss} Ranking Loss 是计算将负例排在正例前的惩罚分
    • 即 AUC ⁡ \operatorname{AUC} AUC 计算 ROC 曲线下的面积,而 Ranking Loss ⁡ \operatorname{Ranking\ Loss} Ranking Loss 计算 ROC 曲线上的面积,二者之和为 1 1 1

4.2.3 AUCmicro

A U C micro  = ∣ { ( x ′ , x ′ ′ , y ′ , y ′ ′ ) ∣ f ( x ′ , y ′ ) ≥ f ( x ′ ′ , y ′ ′ ) , ( x ′ , y ′ ) ∈ S + , ( x ′ ′ , y ′ ′ ) ∈ S − } ∣ ∣ S + ∣ ∣ S − ∣ A U C_{\text {micro }}=\frac{\left|\left\{\left(\boldsymbol{x}^{\prime}, \boldsymbol{x}^{\prime \prime}, y^{\prime}, y^{\prime \prime}\right) \mid f\left(\boldsymbol{x}^{\prime}, y^{\prime}\right) \geq f\left(\boldsymbol{x}^{\prime \prime}, y^{\prime \prime}\right),\left(\boldsymbol{x}^{\prime}, y^{\prime}\right) \in \mathcal{S}^{+},\left(\boldsymbol{x}^{\prime \prime}, y^{\prime \prime}\right) \in \mathcal{S}^{-}\right\}\right|}{\left|\mathcal{S}^{+}\right|\left|\mathcal{S}^{-}\right|} AUCmicro ​=∣S+∣∣S−∣∣{(x′,x′′,y′,y′′)∣f(x′,y′)≥f(x′′,y′′),(x′,y′)∈S+,(x′′,y′′)∈S−}∣​

  • 其中, S + = { ( x i , y ) ∣ y ∈ Y i , 1 ≤ i ≤ N } ( S − = { ( x i , y ) ∣ y ∉ Y i , 1 ≤ i ≤ N } ) \mathcal{S}^+=\left\{(\boldsymbol{x}_i,y)\mid y\in Y_i, 1\leq i\leq N\right\}(\mathcal{S}^-=\left\{(\boldsymbol{x}_i,y)\mid y\notin Y_i, 1\leq i\leq N\right\}) S+={(xi​,y)∣y∈Yi​,1≤i≤N}(S−={(xi​,y)∣y∈/Yi​,1≤i≤N}),分别代表 x i \boldsymbol{x}_i xi​ 中有 (无) 标签 y y y,二者的并就是 X \mathcal{X} X 与 Y \mathcal{Y} Y 的笛卡尔积
  • 该式的含义为,先将 X \mathcal{X} X 与 Y \mathcal{Y} Y 求笛卡尔积,得到的 ( x , y ) (\boldsymbol{x}, y) (x,y) 可以根据 x \boldsymbol{x} x 中是否有标签 y y y 来进行分类,从而划分得到两个集合 S + \mathcal{S}^+ S+ 和 S − \mathcal{S}^- S−
  • 再将 S + \mathcal{S}^+ S+ 和 S − \mathcal{S}^- S− 作笛卡尔积,统计将 S + \mathcal{S}^+ S+ 的元素排在 S − \mathcal{S}^- S− 前面的元素所占的比例 (根据预测的概率进行排序)
  • 即,和 Ranking Loss ⁡ \operatorname{Ranking\ Loss} Ranking Loss 相反

更多推荐

多标签评价指标

本文发布于:2024-03-14 08:14:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736032.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:评价指标   标签

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!