顺手记——几个深度学习常见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_scorekappa_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是一样的。