1.混淆矩阵
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。
值为1为正类,0为负类
TN (True Negative):真负类真实值是0,预测值也是0,即我们预测是negative,预测正确了。
FP (False Positive):假正类 真实值是0,预测值是1,即我们预测是positive,但是预测错误了。
FN (False Negative):假负类真实值是1,预测值是0,即我们预测是negative,但预测错误了。
TP (True Positive):真正类 真实值是1,预测值是1,即我们预测是positive,预测正确了。
预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。
2.二级指标
混淆矩阵只是统计了各类的个数,有时候只看个数说明不了什么问题,故延伸了一些指标
其中包括准确率、精准率、灵敏度(召回率)和特异度
为什么精准率和召回率的分子都是TP,也就是只为1的样本呢?
因为在有偏数据数据中,我们一般把关注的事件归为正类,也就是值为1
3.三级指标
这个指标叫做F1 Score。他的计算公式是:
其中,P代表Precision,R代表Recall。
为什么要看FI?不同场景中,精准率和召回率看重程度不一样,但很多时候却没那么多明显的选择,故只能平衡两者的值
F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。
F1 Score 是精准率和召回率的调和平均值
什么是调和平均值?为什么要取调和平均值?调和平均值的特点是如果二者极度不平衡,如某一个值特别高、另一个值特别低时,得到的F1 Score值也特别低;只有二者都非常高,F1才会高。这样才符合我们对精准率和召回率的衡量标准。
二、分类阈值、TPR和FPR
分类阈值
分类阈值,即设置判断样本为正例的阈值thr
如果某个逻辑回归模型对某封电子邮件进行预测时返回的概率为 0.9995,则表示该模型预测这封邮件非常可能是垃圾邮件。相反,在同一个逻辑回归模型中预测分数为 0.0003 的另一封电子邮件很可能不是垃圾邮件。可如果某封电子邮件的预测分数为 0.6 呢?为了将逻辑回归值映射到二元类别,您必须指定分类阈值(也称为判定阈值)。如果值高于该阈值,则表示“垃圾邮件”;如果值低于该阈值,则表示“非垃圾邮件”。人们往往会认为分类阈值应始终为 0.5,但阈值取决于具体问题
在sklearn中有一个方法叫:decision_function,即返回分类阈值
精准率和召回率这两个指标有内在的联系,并且相互冲突。precision随着threshold的增加而增加,recall随着threshold的增大而减小。如果某些场景需要precision,recall都保持在80%,可以通过这种方式求出threshold
注释:
精准率=TP/(TP+FP) 当阈值越高的时候,TP和FP都会减小,并且分母是TP+FP,减小的速度应该比分子快,故会增高,也可以这么说,精准率代表的是预测为1的结果中,实际也为1的比例。thr增大,预测为1的条件越严格,这个比例就会越大。
取thr为0和1两个极端值判断一下就比较好理解了
TPR
TPR:预测为1,且预测对了的数量,占真实值为1的数据百分比。很好理解,就是召回率。
TPR=recall=TP/(TP+FN)
FPR
FPR:预测为1,但预测错了的数量,占真实值不为1的数据百分比。与TPR相对应,FPR除以真实值为0的这一行所有的数字和
FPR=FP/(TN+FP)
TPR和FPR之间是成正比的,TPR高,FPR也高。ROC曲线就是刻画这两个指标之间的关系
ROC曲线
ROC曲线(Receiver Operation Characteristic Cureve),描述TPR和FPR之间的关系。x轴是FPR,y轴是TPR。
我们已经知道,TPR就是所有正例中,有多少被正确地判定为正;FPR是所有负例中,有多少被错误地判定为正。
放在具体领域来理解上述两个指标。如在医学诊断中,判断有病的样本。那么尽量把有病的揪出来是主要任务,也就是第一个指标TPR,要越高越好。而把没病的样本误诊为有病的,也就是第二个指标FPR,要越低越好。不难发现,这两个指标之间是相互制约的。如果某个医生对于有病的症状比较敏感,稍微的小症状都判断为有病,那么他的第一个指标应该会很高,但是第二个指标也就相应地变高。最极端的情况下,他把所有的样本都看做有病,那么第一个指标达到1,第二个指标也为1
我们已经知道,TPR就是所有正例中,有多少被正确地判定为正;FPR是所有负例中,有多少被错误地判定为正。 分类阈值取不同值,TPR和FPR的计算结果也不同,最理想情况下,我们希望所有正例 & 负例 都被成功预测 TPR=1,FPR=0,即 所有的正例预测值 > 所有的负例预测值,此时阈值取最小正例预测值与最大负例预测值之间的值即可。
TPR越大越好,FPR越小越好,但这两个指标通常是矛盾的。为了增大TPR,可以预测更多的样本为正例,与此同时也增加了更多负例被误判为正例的情况。
AUC
AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。