一、 ROC曲线和AUC值

在逻辑回归、随机森林、GBDT、XGBoost这些模型中,模型训练完成之后,每个样本都会获得对应的两个概率值,一个是样本为正样本的概率,一个是样本为负样本的概率。把每个样本为正样本的概率取出来,进行排序,然后选定一个阈值,将大于这个阈值的样本判定为正样本,小于阈值的样本判定为负样本,然后可以得到两个值,一个是真正率,一个是假正率。

真正率即判定为正样本且实际为正样本的样本数/所有的正样本数,假正率为判定为正样本实际为负样本的样本数/所有的负样本数。每选定一个阈值,就能得到一对真正率和假正率,由于判定为正样本的概率值区间为[0,1],那么阈值必然在这个区间内选择,因此在此区间内不停地选择不同的阈值,重复这个过程,就能得到一系列的真正率和假正率,以这两个序列作为横纵坐标,即可得到ROC曲线了。而ROC曲线下方的面积,即为AUC值。

二 、KS曲线

K-S曲线其实数据来源和本质和ROC曲线是一致的,只是ROC曲线是把真正率和假正率当作横纵轴,而K-S曲线是把真正率和假正率都当作是纵轴,横轴则由选定的阈值来充当。

KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估,指标衡量的是好坏样本累计分部之间的差值。好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。

KS的计算步骤如下:

  • 计算每个评分区间的好坏账户数。
  • 计算每个评分区间的累计好账户数占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%)。
  • 计算每个评分区间累计坏账户占比与累计好账户占比差的绝对值(累计good%-累计bad%),然后对这些绝对值取最大值即得此评分卡的KS值。

三、AUC和KS的关系

要弄明白ks值和auc值的关系首先要弄懂roc曲线和ks曲线是怎么画出来的。其实从某个角度上来讲ROC曲线和KS曲线是一回事,只是横纵坐标的取法不同而已。拿逻辑回归举例,模型训练完成之后每个样本都会得到一个类概率值(注意是类似的类),把样本按这个类概率值排序后分成10等份,每一份单独计算它的真正率和假正率,然后计算累计概率值,用真正率和假正率的累计做为坐标画出来的就是ROC曲线,用10等分做为横坐标,用真正率和假正率的累计值分别做为纵坐标就得到两个曲线,这就是KS曲线。AUC值就是ROC曲线下放的面积值,而ks值就是ks曲线中两条曲线之间的最大间隔距离。

ROC值一般在0.5-1.0之间。值越大表示模型判断准确性越高,即越接近1越好。ROC=0.5表示模型的预测能力与随机结果没有差别。KS值表示了模型将+和-区分开来的能力。值越大,模型的预测准确性越好。一般,KS>0.2即可认为模型有比较好的预测准确性。KS值一般是很难达到0.6的,在0.2~0.6之间都不错。一般如果是如果负样本对业务影响极大,那么区分度肯定就很重要,此时K-S比AUC更合适用作模型评估,如果没什么特别的影响,那么用AUC就很好了。

四、混淆矩阵

查准率(准确率):在被识别为正类别的样本中,确实为正类别的比例是多少?
查全率(召回率):在所有正类别样本中,被正确识别为正类别的比例是多少?

查准率和查全率的计算

查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。例如,若希望将好瓜尽可能多地选出来(查全率高),则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比例尽可能高(查准率高),则可只挑选最有把握的瓜, 但这样就难免会漏掉不少好瓜,使得查全率较低。

五、P-R曲线

根据样例是正例的可能性进行排序,排在前面的是学习器认为"最可能 “是正例的样本,排在最后的则是学习器认为"最不可能"是正例的样本。这样,分类过程就相当于在这个排序中以某个"截断点” (cut point)将样本分为两部分,前一部分判作正例,后一部分则判作反例。

这个截断点就相当于阈值(threshold),设置不同的threshold计算出当前的查全率、 查准率。即根据不同threshold来绘制曲线,曲线A上的每个点都对应不同的阈值。A,B,C是三个学习器,也可以说是三个模型。

如何度量学习器性能?

若一个学习器的 P-R 曲线被另一个学习器的曲线完全包住 ,则后者的性能优于前者,A优于C若两个学习器的P-R曲线相交,则可根据平衡点和F1度量。

(1)平衡点(Break-event Point,简称BEP):即查全率=查准率时的取值。平衡点取值A>B,即A优于B (2)F1度量

Fl 是基于查准率与查全率的调和平均 (harinonic mean)定义的:

六、模型稳定度指标PSI

群体稳定性指标PSI(Population Stability Index)是衡量模型的预测值与实际值偏差大小的指标。

举例:

比如训练一个logistic回归模型,预测时候会有个概率输出p。测试集上的输出设定为p1吧,将它从小到大排序后10等分,如0-0.1,0.1-0.2,......。现在用这个模型去对新的样本进行预测,预测结果叫p2,按p1的区间也划分为10等分。实际占比就是p2上在各区间的用户占比,预期占比就是p1上各区间的用户占比。

意义就是如果模型跟稳定,那么p1和p2上各区间的用户应该是相近的,占比不会变动很大,也就是预测出来的概率不会差距很大。一般认为PSI小于0.1时候模型稳定性很高,0.1-0.25一般,大于0.25模型稳定性差,建议重做。

PS:除了按概率值大小等距十等分外,还可以对概率排序后按数量十等分,两种方法计算得到的psi可能有所区别但数值相差不大。

kmeans及模型评估指标_模型评估常用指标相关推荐

  1. c iostream.源码_通达信常用指标:「金手指 」指标源码

    通达信常用指标:[金手指 ]指标源码 强弱:=IF(C>=MA(C,18) AND (MA(C,18)>=REF(MA(C,18),1) OR (MA(C,18)<REF(MA(C, ...

  2. kmeans及模型评估指标_如何评估聚类模型?兰德指数、轮廓系数、Calinski Harabaz指数...

    我们可以通过对一系列曲目进行聚类来创建歌曲的自动播放列表,我们可以展示如何自动创建相似歌曲的子组.通过我们现有的歌曲知识,我们能够验证该聚类练习的结果. 但是,如果我们对数据没有这种先验知识怎么办?如 ...

  3. 评估指标_供应链改进常用评估指标

    供应链改善项目大部分是基于供应链SCOR模型开展,在SCOR模型中,涉及到分销.计划.采购.制造.配送.退货等功能环节.而供应链的改善核心内容是流程的优化.规则的确定,最终体现在两大目标:" ...

  4. r语言解释回归模型的假设_模型假设-解释

    r语言解释回归模型的假设 Ever heard of model assumptions? What are they? And why are they important? A model is ...

  5. em模型补缺失值_模型对缺失值的处理

    模型对缺失值的处理 首先从两个角度解释你的困惑: 工具包自动处理数据缺失不代表具体的算法可以处理缺失项 对于有缺失的数据:以决策树为原型的模型优于依赖距离度量的模型 回答中也会介绍树模型,如随机森林 ...

  6. 最简单的线性回归模型 李烨_模型

    标题 本模型取自gitchat 中李烨老师的课程, 本模型要解决的问题 如下图,左侧是工作年龄,右侧是薪资, 我们想弄清楚 y 与 x 间的函数关系 必要的假设 我们必须先对y 与 x 的关系做出假设 ...

  7. 七天编写指标_操盘线指标公式源码(七天线 工作线 生命线)[通达信公式

    七天线:MA(C,7),COLORGRAY; 工作线:(EMA(C,14)),POINTDOT,LINETHICK4,COLORYELLOW; 生命线:(MA(C,25)),LINETHICK2,CO ...

  8. 通达信版弘历软件指标_通达信软件指标编写基础教程,10个指标源码祝你股市一帆风顺...

    一.基本函数 HHV(X,N) N日内X的最高价 LLV(X,N) N日内X的最低价 VOL 成交量 AND 和,表示同时满足 MA(X,N) 移动平均线,5日均线可以写作MA(CLOSE,5): H ...

  9. rds for mysql的监控指标_支持的监控指标_云数据库 RDS_用户指南_MySQL用户指南_监控指标与告警_华为云...

    rds001_cpu_util CPU使用率 该指标用于统计测量对象的CPU使用率,以比率为单位. 0-100% 测量对象:弹性云服务器 监控实例类型:MySQL实例 1分钟 5秒 1秒 rds002 ...

最新文章

  1. sublime运行错误
  2. 04JavaScript中的运算符
  3. Python---多任务介绍以及Thread的基本使用
  4. Java多线程-BlockingQueue-ArrayBlockingQueue-LinkedBlockingQueue
  5. 前端学习(2927):今日总结
  6. AI芯片格局最全分析
  7. 心语收集14:人生没有如果,但是有很多但是;人生不能后悔,但是可以拐弯。...
  8. Apache日志配置详解(rotatelogs LogFormat)
  9. HDU 1042 N!( 高精度乘法水 )
  10. CA数字证书包含哪些文件?如何查看SSL证书信息?
  11. 浮点数计算常见错误1.#INF, 1.#IND和#QNAN
  12. linux pbs 用户时间,Linux/超算中PBS常用命令
  13. html图片橡皮擦特效,原生制作的js涂鸦画板特效 可调画笔颜色|粗细|橡皮檫功
  14. 计算机工作招聘要求高吗,太原高中计算机教师招聘
  15. win10和ubuntu16双系统安装
  16. 【HighChart教程】编程语言详细程度的互动比较
  17. 操作系统管理计算机资源
  18. zedgraph显示最小刻度_ZedGraph 控件各属性以及示例
  19. Python中Collections模块namedtuple用法
  20. Python:实现GrabCut算法(附完整源码)

热门文章

  1. 【强势来袭】Node.js(nodejs)实现“一口多用”(含用户创建、登录、鉴权token) 一个文件解决所有常态化需求
  2. ATS 6.2.1中缓存文件过期并不回源校验的“坑”
  3. 利用python获取指定url在ATS中缓存对象的信息
  4. leetcode-55 跳跃游戏
  5. C语言网络编程:多路IO select实现多客户端
  6. java课堂测试样卷-----简易学籍管理系统
  7. 初步判断内存泄漏方法
  8. input样式和修改
  9. UVALive2678:Subsequence
  10. transform总结