1. 基本概念

   
FN TP
TN FP

TP —— True Positive (真正, TP)被模型预测为正的正样本;可以称作判断为真的正确率 
TN —— True Negative(真负 , TN)被模型预测为负的负样本 ;可以称作判断为假的正确率 
FP ——False Positive (假正, FP)被模型预测为正的负样本;可以称作误报率 
FN—— False Negative(假负 , FN)被模型预测为负的正样本;可以称作漏报率

True Positive Rate(真正率 , TPR)或灵敏度(sensitivity) 
   TPR = TP /(TP + FN) 
  正样本预测结果数 / 正样本实际数 
True Negative Rate(真负率 , TNR)或特指度(specificity) 
   TNR = TN /(TN + FP) 
  负样本预测结果数 / 负样本实际数 
False Positive Rate (假正率, FPR) 
  FPR = FP /(FP + TN) 
  被预测为正的负样本结果数 /负样本实际数 
False Negative Rate(假负率 , FNR) 
  FNR = FN /(TP + FN) 
  被预测为负的正样本结果数 / 正样本实际数

Precision:P=TP/(TP+FP) 精准率(查准率) 
Recall:R=TP/(TP+FN) 召回率(查全率 ) 
精确率是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本。那么预测为正就有两种可能了,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP),而召回率是针对我们原来的样本而言的,它表示的是样本中的正例有多少被预测正确了。那也有两种可能,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN)。其实就是分母不同,一个分母是预测为正的样本数,另一个是原来样本中所有的正样本数

F1-score:2/(1/P+1/R) 
ROC/AUC:TPR=TP/(TP+FN), FPR=FP/(FP+TN) 
 其中查全率有更大影响,查准率有更大影响。退化为F1 
2. ROC、AUC和PRC 
ROC(receiver operating characteristic curve)是曲线。也就是下图中的曲线。AUC也就是蓝色线与FPR围成的面积。一般来说,如果ROC是光滑的,那么基本可以判断没有太大的overfitting(比如图中0.2到0.4可能就有问题,但是样本太少了),这个时候调模型可以只看AUC,面积越大一般认为模型越好。 

PRC, precision recall curve。和ROC一样,先看平滑不平滑(蓝线明显好些),在看谁上谁下(同一测试集上),一般来说,上面的比下面的好(绿线比红线好)。F1当P和R接近就也越大,一般会画连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好象AUC对于ROC一样。一个数字比一条线更方便调模型。 

有时候模型没有单纯的谁比谁好(比如图二的蓝线和青线),那么选择模型还是要结合具体的使用场景。

下面是两个场景: 
1. 地震的预测 
对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了;也不要预测100次,对了8次漏了2次。 
2. 嫌疑人定罪 
基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。及时有时候放过了一些罪犯(recall低),但也是值得的。

对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。

如果只能选一个指标的话,肯定是选PRC了。

3.注释 
mark1:在一些应用中,对精准率(查准率)和召回率(查全率 )重视程度不同,如商品推荐系统中,为了尽可能少打扰用户,更希望推荐的内容确实是用户比较感兴趣的,此时精准率(查准率)比较重要;在逃犯信息检索系统中,更希望尽量可能少漏掉逃犯,此时召回率(查全率 )比较重要; 
mark2:ROC比PRC效果好这个结论的切入点: 
对于同一份数据不同的模型来说,由于ROC同时考虑了两个类别上的准确率,效果比PRC要好;PRC由于仅考虑正样本,如果分布失衡,容易造成某个模型的PRC很高,但其实是在样本量大的那个类别“带偏”了; 
mark3:PRC比ROC效果好这个结论的切入点: 
对于同一份数据同一个的模型来说(就只有一个模型,一个ROC,一个PRC),因为ROC对类分布不敏感,就容易造成一个看似比较高的AUC对应的分类效果实际上并不好;而PRC就会波动非常大,以一个很“激烈”的方式表现出效果的不好。

某个模型AUC本身值的大小其实是不重要的,重要的是跟其他模型在同一份数据集上的AUC的大小关系,相对较大的那个更好。而PRC由于波动剧烈,即使不同模型在不同数据集上,也能看出一定的效果。(但其实对建立在不同数据上的不同模型,或者仅仅对某一个模型,仅靠PRC或者AUC来决定哪个好哪个差,这种方法本身就是不正确的。)

转载自:http://blog.csdn.net/guhongpiaoyi/article/details/53289229

一、假正例和假负例

假正例(False Positive):预测为1,实际为0的样本

假负例(False Negative):预测为0,实际为1的样本

实际预测中,那些真正例(True Positive)和真负例(True Negative)都不会造成损失(cost)。

那么,我们假设一个假正例的损失是LFP,一个假负例的损失是LFN。

我们可以得到一个损失矩阵:

  y^=1 y^=0
y=1 0 LFN
y=0 LFP 0

其中,y是真实值,y^是预测值。

那么,我们可以得到一个样本的后验期望损失:

的时候,我们会预测结果为y^1=1,此时

假设,,那么我们可以得到决策规则:

其中,,也就是我们的决策边界。

例如,c=1时,我们对假正例和假负例同等对待,则可以得到我们的决策边界0.5。

二、ROC曲线

1.混淆矩阵(confusion matrix)

针对预测值和真实值之间的关系,我们可以将样本分为四个部分,分别是:

真正例(True Positive,TP):预测值和真实值都为1

假正例(False Positive,FP):预测值为1,真实值为0

真负例(True Negative,TN):预测值与真实值都为0

假负例(False Negative,FN):预测值为0,真实值为1

我们将这四种值用矩阵表示(图片引自《machine learning:A Probabilistic Perspective》):

上面的矩阵就是混淆矩阵。

2.ROC曲线

通过混淆矩阵,我们可以得到真正例率(True Positive Rate , TPR):

我们还可以得到假正例率(False Positive Rate  , FPR):

可以看到,TPR也就是我们所说的召回率,那么只要给定一个决策边界阈值,我们可以得到一个对应的TPR和FPR值,然而,我们不从这个思路来简单的得到TPR和FPR,而是反过来得到对应的,我们检测大量的阈值,从而可以得到一个TPR-FPR的相关图,如下图所示(图片引自《machine learning:A Probabilistic Perspective》):

图中的红色曲线和蓝色曲线分别表示了两个不同的分类器的TPR-FPR曲线,曲线上的任意一点都对应了一个值。该曲线就是ROC曲线(receiver operating characteristic curve)。该曲线具有以下特征:

  • 一定经过(0,0)点,此时,没有预测为P的值,TP和FP都为0

  • 一定经过(1,1)点,此时,全都预测为P

  • 最完美的分类器(完全区分正负样例):(0,1)点,即没有FP,全是TP

  • 曲线越是“凸”向左上角,说明分类器效果越好

  • 随机预测会得到(0,0)和(1,1)的直线上的一个点

  • 曲线上离(0,1)越近的点分类效果越好,对应着越合理的

从图中可以看出,红色曲线所代表的分类器效果好于蓝色曲线所表示的分类器。

3.利用ROC的其他评估标准

  • AUC(area under thecurve),也就是ROC曲线的下夹面积,越大说明分类器越好,最大值是1,图中的蓝色条纹区域面积就是蓝色曲线对应的 AUC
  • EER(equal error rate),也就是FPR=FNR的值,由于FNR=1-TPR,可以画一条从(0,1)到(1,0)的直线,找到交点,图中的A、B两点。

转载自:http://blog.csdn.net/tkingreturn/article/details/17640599

【转】常用的风控算法模型评价指标相关推荐

  1. 聚类算法模型评价指标

    聚类算法模型评价指标 1.如何衡量聚类算法的效果? 2.簇内平方和的缺点 3.使用轮廓系数评价聚类算法 4. 轮廓系数计算代码实现 1.如何衡量聚类算法的效果? 聚类算法的结果不是某种标签输出,并且聚 ...

  2. 数学建模基本算法模型

    全国大学生数学建模竞赛中常用的算法模型包括但不限于以下几种: 线性回归模型:用于建立变量之间线性关系的模型,常用于预测和分析数据. 逻辑回归模型:用于建立变量之间的非线性关系,常用于分类问题和概率预测 ...

  3. python程序题求roc-auc是一种常用的模型评价指标_模型评价方法

    第五章 模型评价方法 5.1 模型的评价方法介绍 5.1.1~5 accuracy,precision,recall,F1-score,ROC曲线 分别画图举例,要说出应用场景,例如什么情况用什么评价 ...

  4. r型聚类典型指标_常用的聚类算法及聚类算法评价指标

    1. 典型聚类算法 1.1 基于划分的方法 代表:kmeans算法 ·指定k个聚类中心 ·(计算数据点与初始聚类中心的距离) ·(对于数据点,找到最近的{i}ci(聚类中心),将分配到{i}ci中) ...

  5. 【模型评价指标】分析模型评价常用指标

    常用的聚类模型评价指标: ARI评价法(兰德系数).AMI评价法(互信息).V-measure评分.FMI评价法.轮廓系数 等 常用的分类模型评价指标: 准确率(Accuracy).精确率(Preci ...

  6. 数学建模--30+种常用算法模型

    全国大学生数学建模竞赛中,常见的算法模型有以下30种: 1.线性规划模型:用于寻找最优解的数学模型. 线性规划(Linear Programming,简称 LP)是一种运筹学方法,用于在一定的约束条件 ...

  7. ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为

    ML之CatBoost:金融风控之通过数据预处理(中位数填充/校验同分布/文本型日期拆解/平均数编码-标签编码)利用CatBoost算法+模型可解释性(Shap/LIME)预测用户的车险是否为欺诈行为 ...

  8. 数学建模当中常用的十大模型及各对应算法

    数学建模当中常用的十大模型及各对应算法 图文展示:

  9. 金融风控实战——模型融合

    过采样方法使用条件 (1)负样本可以代表样本空间 (2)数据是足够干净的(样本.特征没有噪声) 过拟合 (1)增多数据 (2)特征筛选 (3)调参 (4)模型融合 模型融合 投票器模型融合 from ...

最新文章

  1. CentOS7性能监控系统安装
  2. Python3 - 时间处理与定时任务
  3. java 反射的效率_如何提高使用Java反射的效率?
  4. 【原】unity3D ios 退出保存数据
  5. 研磨数据结构与算法-13删除二叉树节点
  6. apache配置防盗链
  7. 翻译:谁将在AI中赚钱?by Simon Greenman
  8. hexo之Volantis主题美化
  9. eova中日期框、查找框、下拉框取值方法
  10. 基于STM32F405平台的多摩川协议编码器通讯过程(2)
  11. win10服务器只显示4g内存,要注意了,4G内存在win10系统中根本不够用
  12. 百度如流首发AI智能办公标准 ,BATH持续发力企业办公
  13. 如何从被领导到领导别人
  14. 工地信息化——施工现场网格化管理系统实施小记
  15. 帝都机器人便利店_我把北京80%的便利店吃了个遍!吐血整理出这份帝都便利店大攻略!...
  16. mysql 语句 面试题
  17. 天数怎么换算成月_excel表中,怎么把日期数转换成月份数呢?
  18. c++报错:常量中有换行符(中文编码问题)
  19. 路由表是干什么的?底层原理是什么?
  20. pdf分割合并工具下载和使用

热门文章

  1. win7更改用户登录或注销方式的操作教程
  2. win7电脑0x000007b蓝屏怎么办
  3. Android平台Camera2数据如何对接RTMP推流到服务器
  4. java中的io复用_从 Java 中的零拷贝到五种IO模型
  5. video-js RTMP直播
  6. Controller数据导出Excel 详细教程——easypoi-base,easypoi-web,easypoi-annotation
  7. @GetMapping和@PostMapping详解
  8. 机器视觉 光学工程专业_瑞士Idonus MEMS制造设备 创新技术 机器视觉测量(远心光学)...
  9. java开发亚马逊mws_GitHub - iotwlw/Amazon-MWS-SDK: 基于亚马逊MWS Java SDK 的封装
  10. android 获取蓝牙设备id_【报Bug】安卓平台获取不到蓝牙设备服务列表(ios可以)...