基础概念
首先需要了解TP,TN,FP,FN的概念
准确率(accuracy)
精确率(precision) 描述的是在所有预测出来的正例中有多少是真的正例,是评估捕获的成果中目标成果所占得比例;
召回率(recall) ,描述的是所有正例我能发现多少,是从关注领域中召回目标类别的比例
Precision和Recall指标有时候会出现的矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure
F1值——精确率和召回率的调和均值
PR曲线
PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。
功能说明:
一条PR曲线要对应一个阈值(统计学的概率)。通过选择合适的阈值(比如K%)对样本进行合理的划分,概率大于K%的样本为正例,小于K%的样本为负例,样本分类完成后计算相应的精准率和召回率,最后我们会得到对应关系,如下图所示。
ROC曲线
ROC作用:
在类不平衡的情况下,如正样本90个,负样本10个,直接把所有样本分类为正样本,得到识别率为90%。但这显然是没有意义的。单纯根据Precision和Recall来衡量算法的优劣已经不能表征这种病态问题。
ROC曲线由两个变量FPR和TPR所得。
TPR = TP / (TP + FN) 描述的是所有正例我能发现多少,即召回率
FPR = FP / (FP + TN) 描述的是所有负例中我预测错误的比例
ROC曲线距离左上角越近,证明分类器效果越好。
如上,是三条ROC曲线,在0.23处取一条直线。那么,在同样的低FPR=0.23的情况下,红色分类器得到更高的PTR。也就表明,ROC越往上,分类器效果越好。我们用一个标量值AUC来量化它。
AUC
AUC值为ROC曲线所覆盖的区域面积,显然,AUC越大,分类器分类效果越好。
AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
计算方式:AUC为ROC曲线下的面积,那我们直接计算面积可得。面积为一个个小的梯形面积之和。计算的精度与阈值的精度有关。
参考链接:
https://blog.csdn.net/guzhao9901/article/details/107961184
https://blog.csdn.net/huipingx/article/details/85019294
https://www.cnblogs.com/maybe2030/p/5375175.html#_label3
代码:https://blog.csdn.net/qq_27575895/article/details/81476871?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control