1. 混淆矩阵
可使用上下左右这个记忆的小诀窍,所以行代表真实值,列代表预测值,和sklearn中的输入格式相同。
如何理解其中字母的含义呢?以FP为例,第二个字母表示的是列(预测值),那么行(真实值)就是预测值(1)取反(False),则真实值即为0。
精准率与召回率也满足上下左右的规律。
1.1 精准率
p r e c i s i o n = T P T P + F P precision=\frac{TP}{TP+FP} precision=TP+FPTP
精准率是查的准。精准率相对应的是漏报率。
1.2 召回率
r e c a l l = T P T P + F N recall=\frac{TP}{TP+FN} recall=TP+FNTP
召回率是查的全。召回率对应的是误报率。
1.3 F1-score
F 1 = 2 ∗ p r e c i s i o n ∗ r e c a l l p r e c i s i o n + r e c a l l F_1=\frac{2*precision*recall}{precision+recall} F1=precision+recall2∗precision∗recall
由于F1-score的小数,简单理解的话,分子是乘积,分母是加和。
2. ROC曲线
ROC曲线的横轴是FPR,纵轴是TPR。FPR是假正率,它和安全领域中的误报率是等价的,计算公式为 F P F P + T N \frac{FP}{FP +TN} FP+TNFP,误报率是从真实白样本角度来看的。TPR指的是命中率,也是召回率,计算公式为 T P T P + F N \frac{TP}{TP+FN} TP+FNTP,其中漏报率=1-命中率,而漏报率是从真实黑样本角度来看的。
如下图所示,当
d
<
θ
d<\theta
d<θ的时候,则认为样本为负样本,所以为FP。当
d
>
θ
d>\theta
d>θ的时候,则认为样本为正样本,所以为FN。
3. AUC
为了计算 ROC 曲线上的点,我们可以使用不同的分类阈值多次评估逻辑回归模型,但这样做效率非常低。幸运的是,有一种基于排序的高效算法可以为我们提供此类信息,这种算法称为曲线下面积(Area Under Curve)。
比较有意思的是,如果我们连接对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是50%,表示随机效果。ROC曲线越陡越好,所以理想值就是1,一个正方形,而最差的随机判断都有0.5,所以一般AUC的值是介于0.5到1之间的。
3.1 AUC的一般判断标准
-
0.5 - 0.7:效果较低,但用于预测股票已经很不错了
-
0.7 - 0.85:效果一般
-
0.85 - 0.95:效果很好
-
0.95 - 1:效果非常好,但一般不太可能
3.2 AUC的物理意义
曲线下面积对所有可能的分类阈值的效果进行综合衡量。曲线下面积的一种解读方式是看作模型将某个随机正类别样本排列在某个随机负类别样本之上的概率。以下面的样本为例,逻辑回归预测从左到右以升序排列:
https://blog.csdn.net/abcjennifer/article/details/7359370
https://blog.csdn.net/Stephen_shijun/article/details/83059863
为什么ROC曲线不受样本不均衡的影响?
https://blog.csdn.net/songyunli1111/article/details/82285266
4. 多类别分类指标
4.1 宏F1
多类别的宏F1值等于多个类别的F1值的平均值。需要注意的是,
多 类 别 的 宏 F 1 ≠ ( 2 ∗ 多 类 别 的 宏 精 准 率 ∗ 多 类 别 的 宏 召 回 率 ) 多 类 别 的 宏 精 准 率 + 多 类 别 的 宏 召 回 率 多类别的宏F1 \neq \frac{(2 * 多类别的宏精准率*多类别的宏召回率)}{多类别的宏精准率+多类别的宏召回率} 多类别的宏F1=多类别的宏精准率+多类别的宏召回率(2∗多类别的宏精准率∗多类别的宏召回率)
根据上述截图来看,两者(先求值再平均和后者)并不相同。
多类别分类指标可参考:https://towardsdatascience.com/multi-class-metrics-made-simple-part-ii-the-f1-score-ebe8b2c2ca1