乐趣区

关于深度学习:几个深度学习常见metrics

顺手记——几个深度学习常见 metrics

kappa

公式

$$
kappa = \frac {p_o-p_e} {1-p_e}
$$

其中

$$
p_o=\frac {分类正确的样本数} {所有样本数} = (混同矩阵中的)\frac {对角线元素之和} {所有元素之和}
$$

$$
p_e = \frac {\sum{y_{pred}的第 i 类样本数 \times y_{true}的第 i 类样本数}} {(所有样本数)^2} \\
= (混同矩阵中的) \frac {\sum {第 i 行元素和 \times 第 i 列元素和}} {(所有元素之和)^2}
$$

例子

y_true = [2, 0, 1, 2, 0, 1]
y_pred = [0, 0, 2, 2, 0, 2]

依据以上 y_true 和 y_pred 构建的混同矩阵如下

0(y_true) 1(y_true) 2(y_true)
0(y_pred) 2 0 1
1(y_pred) 0 0 0
2(y_pred) 0 2 1

接着计算
$p_o=(2+1)/6=\\frac {1}{2}$,$p_e=(3\\times 2+0\\times 2+3\\times 2)/(6\\times 6)=\\frac {1}{3}$

最终

$$
kappa = \frac{\frac{1}{2}-\frac{1}{3}}{1-\frac{1}{3}} = 0.25
$$

代码验证

from sklearn.metrics import cohen_kappa_score
kappa_value = cohen_kappa_score(y_true, y_pred)
输入后果 0.250000

设计目标

为了解决类别不均衡问题,kappa 依附 $p_e$ 在类别越不均衡就越大的特点,使得类别不均衡时 kappa 分数会更低。

F1-score

回顾根底概念,二分类混同矩阵中,有这些定义:

  • TP: true positive,理论为 true,预测为 positive
  • TN: true negative,理论为 true,预测为 negative
  • FP: false positive,理论为 false,预测为 positive
  • FN: false negative,理论为 false,预测为 negative

在这些的根底上,定义了三个指标:

  • Accuracy: 准确率, $\\frac {TP+TN}{TP+TN+FP+FN}$, 预测分类精确的比例
  • Precision: 准确率, $\\frac {TP}{TP+FP}$, 预测为 positive 中正确的比例
  • Recall: 召回率, $\\frac {TP}{TP+TN}$, 理论为 true 中被预测进去的比例

为了综合 Precision 和 Recall,求取两者的 和谐平均数 因为无奈间接得悉 TP+FP 和 TP+TN 的数量,间接用加权均匀无奈确定正当的权重
$$ F1 = \frac {2*precision*recall}{precision+revall} $$

Dice

十分微妙的是,F1-score 也被称作 Dice similarity coefficient,也就是说他的含意和医学影像宰割中罕用的 Dice 是一毛一样的。

Dice 个别定义如下:

$$
\text {DiceCoefficient}=\frac{2|X \cap Y|}{|X|+|Y|}
$$

咱们能够“诧异”地发现,如果把 pred($X$)和 ground-truth($Y$)了解为用 [0,1] 标注的分类 ( 其实这正是语义宰割的原始定义,pixel-wise 的分类问题 ),可见 Dice 的确和 F1-score 是一样的。

退出移动版