如何计算多类总体准确度、灵敏度和特异性?

Rst*_*nbl 5 machine-learning confusion-matrix multiclass-classification

谁能解释一下如何计算多类数据集的准确性、敏感性和特异性?

在此处输入图片说明

小智 11

每个类别的敏感度可以根据其计算

TP/(TP+FN)

每个类别的特异性可以从其计算

TN/(TN+FP)

有关概念和方程的更多信息 http://en.wikipedia.org/wiki/Sensitivity_and_specificity

对于多类分类,您可以使用一种方法来对抗所有方法。

假设有三个类:C1、C2 和 C3

“C1 的 TP”是被分类为 C1 的所有 C1 实例。

“C1 的 TN”是未分类为 C1 的所有非 C1 实例。

“C1 的 FP”是被分类为 C1 的所有非 C1 实例。

“C1 的 FN”是未分类为 C1 的所有 C1 实例。

要查找 C2 或 C3 这四项,您可以将 C1 替换为 C2 或 C3。

用简单的句子来说:

在 2x2 中,一旦您选择一个类别为正数,另一类别将自动为负数。对于 9 个类别,您基本上有 9 种不同的敏感性,具体取决于您在 9 个类别中选择哪一个为“阳性”。您可以通过折叠为 2x2 来计算这些值,即 Class1 与 not-Class1,然后 Class2 与 not-Class2,依此类推。

例子 :

我们得到 7 种玻璃的混淆矩阵:

=== Confusion Matrix ===

  a  b  c  d  e  f  g   <-- classified as
 50 15  3  0  0  1  1 |  a = build wind float
 16 47  6  0  2  3  2 |  b = build wind non-float
  5  5  6  0  0  1  0 |  c = vehic wind float
  0  0  0  0  0  0  0 |  d = vehic wind non-float
  0  2  0  0 10  0  1 |  e = containers
  1  1  0  0  0  7  0 |  f = tableware
  3  2  0  0  0  1 23 |  g = headlamps
Run Code Online (Sandbox Code Playgroud)

针对每种玻璃计算的真阳性率(灵敏度),加上总体加权平均值:

=== Detailed Accuracy By Class ===

 TP Rate  FP Rate  Precision  Recall   F-Measure  MCC      ROC Area  PRC Area  Class
 0.714    0.174    0.667      0.714    0.690      0.532    0.806     0.667     build wind float
 0.618    0.181    0.653      0.618    0.635      0.443    0.768     0.606     build wind non-float
 0.353    0.046    0.400      0.353    0.375      0.325    0.766     0.251     vehic wind float
 0.000    0.000    0.000      0.000    0.000      0.000    ?         ?         vehic wind non-float
 0.769    0.010    0.833      0.769    0.800      0.788    0.872     0.575     containers
 0.778    0.029    0.538      0.778    0.636      0.629    0.930     0.527     tableware
 0.793    0.022    0.852      0.793    0.821      0.795    0.869     0.738     headlamps
 0.668    0.130    0.670      0.668    0.668      0.539    0.807     0.611     Weighted Avg.  
Run Code Online (Sandbox Code Playgroud)