第一种:ROC(Receiver Operating Characteristic)
目的:
(1)分类结果往往不是0和1 而是0-1之间的连续变量 为此需要设定一个阈值线进行分类
(2)accuracy评价方式已经满足不了。也即是引入:类不平衡问题,链接
其主要分析工具是一个画在二维平面上的曲线——ROC curve。横坐标是false positive rate(FPR),纵坐标是true positive rate(TPR)
引入:混淆矩阵
真阳性TP(True Positive)、真阴性TN(True Negative);假阳性FP(False Positive)、假阴性FN(False Negative)
设定1为阳性,正类,0为阴性,负类
真阳性TP(True Positive):表示实际类别是1,预测为1.(其中1为我们想要检出的目标)
真阴性TN(True Negative)表示实际类别是0,预测为0.
假阴性FN(False Negative)表示实际类别是1,预测为0.
假阳性FP(False Positive)表示实际类别是0,预测为1.假的预测为阳性
举例:对应于疾病检测,若我们要检测出肿瘤为1,健康为0。
TP就表示正确的检测出肿瘤,TN表示正确的检测出健康类别
FN表示将肿瘤错误的检测为健康,FP表示将健康错误的检测为肿瘤;
FN和FP都是错误的检测(F),N表示预测为0(负类),P表示预测为1(正类)
TP和TN都是正确的检测(T)
它们之间的关系:
上图说明:虚线左代表预测为负类,虚线右代表预测为正类;虚线A往右,则TP、FP变小,则查准率变高;FP变小、FN变大则查全率变低
准确率(Accuracy):Acc = ( TP + TN ) / ( TP+FP+TN+FN)
查准率(从字面理解,预测出的正类中,确实为正类的准确率),也称准确率,
也称为阳性预测值(Positive Predictive Value PPV)precision 精确率
P=TP/(TP+FP)
举例:正确预测为肿瘤的人数/预测出的肿瘤人数
查全率(从字面理解,实际所有的正类中,预测为正类的准确率),也称召回率
R=TP/(TP+FN)
查全率等价于真阳性率(TPR),别名:灵敏度、命中率、召回recall、敏感度(SE)Sensitivity
TPR=TP/(TP+FN)
含义:1(正确预测的正类)/所有正类(TP 正确的预测为正类+错误的预测为负类(原来是正类))
举例:肿瘤被识别为肿瘤/所有的肿瘤人数
假阳性率(FPR),(实际所有的负类中,预测结果为正类的概率)别名:误检率
FPR=FP/(FP+TN)
含义:0(原来是负类却错误的预测为正类)/所有的负类(FP+正确的预测为负类)
举例:健康人被识别为肿瘤的个数/所有的健康人数
特异性Specificity:实际所有的负类中,预测结果为负类的概率(SP)真阴性率
SPC=TN/(TN+FP)
参考:https://www.cnblogs.com/leezx/p/6105212.html
高敏感性低特异性时,阳性诊断(真阳性率)具有诊断意义;
高特异性低敏感性时,阴性诊断(真阴性率)具有排除诊断意义。
阴性预测值(negative predictive value, NPV)指预测结果为阴性的受试者中确实为阴性(真正未患病的)的比例
NPV:Negative predictive value
计算公式:NPV=TN / (FN + TN)
假阴性率 (False Negative Rate):FNR = FN /(TP + FN)
通过FPR(横轴)和TPR(纵轴)构成ROC曲线,其中FPR越小时TPR越大越好,也即是曲线下的面积越大越好。
上图的曲线A往右走,(上边的蓝色包络)则FP减小TN增大,则假阳性率FPR变小,(下边的红色包络)TP变小,FN变大,则真阳性率TPR变小。假设左边为阈值1 , 右边为阈值0,通过阈值调整实现ROC曲线的绘制;正好对应ROC曲线:往左边则FPR和TPR减少。
其中上图的ROC曲线为锯齿状的原因是: 样例数目少使得计算出的(FPR,TPR)数目少。
AUC(Area Under the Curve)
AUROC表示计算ROC曲线(如上文中所述的蓝色曲线)下的面积,评价分类器性能好坏的指标。越大则分类器越好!
虚线为随机预测结果
面积计算:
其中的xi和yi代表每ROC曲线上的每一个点。
第二种:PR曲线
单个模型的曲线获得:上面图说明:虚线左代表预测为负类,虚线右代表预测为正类;虚线A往右,则TP、FP变小,则查准率变高;FP变小、FN变大则查全率变低
解读:上图为ABC三个模型得出的PR曲线图,如何比较不同模型的分类性能?
(1)曲线C被曲线A包住,则模型A的分类效果比模型C的效果好;
(2)若两条曲线交叉,如A和B,则需要看具体的查全率和查准率值,评价方式有:比较曲线下面积、引入平衡点BEP、调和平均值F1
平衡点:查准率=查全率的点,越高则越好
调和均值F1:(精确率和召回率的调和均值,精确率和召回率都高时,F1值也会高)
调和均值的扩展:
看更加看重的是查全率还是查准率,调节不同的值,并比较不同模型得出的F值。
在单个模型下:
有多个训练和测试得出的PR结果,可以采用1、先计算各个P和R,求平均,再求F1,F 2、计算的各个TP、TN、FP、FN,分别对应求平均,再求F1和F
问题:单个模型下ROC曲线和PR曲线是如何绘制出来的?区分上面的多个测试集。
这部分西瓜书解释不好!
参考:点击链接https://blog.csdn.net/zuolixiangfisher/article/details/81328297 讲的不错
总结:用到的是一个测试集,样本点逐个比较,越往后则包含的点数越多。我们根据每个测试样本属于正样本的概率值从大到小排序然后我们按照样本的score(概率值)值,从大到小依次作为阈值,当样本score值大于等于阈值时则判定为正样本,否则为负样本;因此将会得到一组TPR和FPR的点,依据这些点就可以画出ROC曲线。
同理PR曲线的绘制类似,只不过计算的是P和R。
ROC和PR曲线的区别,具有的优势
当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变【4】【6】。
其中分布变化,具体是在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化
而PR曲线就会因为正负样本的分布变化而出现很大的改变。
待续......
博客总结的全:https://blog.csdn.net/aliceyangxi1987/article/details/74181259
总结的优缺点:https://www.zhihu.com/question/30643044
参考:
【1】AUC以及AOC混淆矩阵1http://m.elecfans.com/article/648824.html
【2】Receiver Operating Characteristic (ROC)https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html
【3】ROC曲线与AUC值https://www.cnblogs.com/gatherstars/p/6084696.html 写的不错
【4】机器学习分类模型效果评估指标介绍https://blog.csdn.net/zuolixiangfisher/article/details/81328297
【5】西瓜书
【6】一篇关于ROC曲线的论文2006年:An introduction to ROC analysis http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=E25A3B8C4747B3488D5CEFD0B61AB217?doi=10.1.1.646.2144&rep=rep1&type=pdf
【7】https://www.cnblogs.com/Allen-rg/p/5821949.html