ks 曲线_ROC、KS曲线及AUC、KS值
上图中,我们最常用的就是TPR(True Positive Rate)和FPR(False Positive Rate):
其中:
TPR = TP/(TP+FN)即真实1中预测错的;
FPR = FP/(FP+TN)即真实0中预测错的;
Precision = TP/(TP+FP)即预测1中对的
最理想的模型,是TPR尽量高而FPR尽量低,然而任何模型在提高正确预测概率的同时,也会难以避免地增加误判率。听起来有点抽象,好在有ROC曲线非常形象地表达了二者之间的关系。
ROC曲线是以FPR为横轴,TPR为纵轴,在不同阈值下计算FPR和TPR的值画出的图形。这个不同阈值的设定可以是将[0,1]区间等分然后取阈值进行计算。当然这样会出现一个新的问题,假如某些概率只落在[0.0092,0.578]区间内时,那么将阈值取0.1到0.9时会出现ROC曲线后边的点都为(0,0),因此需要改进。
改进原理:将区间[0.0092,0.578]按照之前的等分划分方法划分为10份,然后再按不同阈值计算。
具体步骤:1.将(0,1)升级为(min(p),max(p))
2.取值(min(p),max(p))/10,设定阈值为(min(p),max(p))*k/10,其中k=1,......9
3.根据不同阈值计算的不同的(FPR,TPR)值
对于多个指标可以画出好几条ROC曲线,此时看AUC指标选优,AUC为ROC曲线下方的面积,值越大说明模型的分辨效果越好。
KS曲线与ROC有着相同的作用:
KS曲线是将概率从小到大进行排序,取10%的值为阈值,同理将10%*k(k=1,......9)处值作为阈值,计算不同的FPR和TPR,以10%*k(k=1,......9)为横坐标,同时分别以TPR和FPR为纵坐标画出两条曲线就是KS曲线。而KS值=|max(TPR-FPR)|
另外,还有另一种计算KS值的方法:
将所有的样本根据分数值从低到高排序均分成20组,分别计算20组的实际好样本数、实际坏样本数、累积好样本数、累积坏样本数、累积好样本数占比、累积坏样本数占比、差值。其中,实际好坏样本数分别为该组内的好坏样本数;累积好坏样本数为该组累积好坏样本数;累积好坏样本数占比为累积好坏样本数占总好坏样本数的比值;差值为累积坏样本数占比 - 累积好样本数占比。KS值为差值绝对值的最大值,具体的可以从下方的表看:
在一个小案例中,为了方便计算10个变量的KS值自己定义了一个计算KS值的函数:ks_value
# 注:
# data_analysis是待分析的数据
# independent_variable是自变量
# dependent_variable是因变量
# level1是因变量中的一个因子水平
# level2是因变量中另一个因子水平
data_arrange %
arrange(eval(parse(text = independent_variable)))
#将数据按照自变量从小到大排序
independent %
select(independent_variable) %>%
unlist()
#筛选出排序后的自变量
cut_independent_variable
#对排序后的自变量进行深度分箱操作,分20组,并返回每个数据所在的组别
data_cut
#将返回的组别与排序后的所有数据放在一起
fact_level1 %
filter(eval(parse(text = dependent_variable)) == level1) %>%
group_by(cut_independent_variable) %>%
summarise(fact_level1 = n())
#分组计算出因子水平1的总数
fact_level2 %
filter(eval(parse(text = dependent_variable)) == level2) %>%
group_by(cut_independent_variable) %>%
summarise(fact_level2 = n())
#分组计算出因子水平2的总数
fact_sample %
na.omit() %>%
mutate(cumsum_level2 = cumsum(fact_level2), #level2累积和
cumsum_level1 = cumsum(fact_level1), #level1累积和
cum_sum_level2_prob = cumsum_level2/sum(fact_level2), #level2累积占比
cum_sum_level1_prob = cumsum_level1/sum(fact_level1), #level1累积占比
D_value = abs(cum_sum_level1_prob - cum_sum_level2_prob)) #两累积占比的差
ks_value = fact_sample %>%
select(D_value) %>%
max()
#计算ks值:ks值是两累积占比的最大值
ks_value
}
ks_value(loandata, "score10", "bad_good", "bad", "good")
该代码的数据如下附件中所示。完整代码附件中也有。
ks 曲线_ROC、KS曲线及AUC、KS值相关推荐
- AUC、KS评价指标、洛伦兹曲线、Gini系数、Lift曲线和Gain曲线
文章目录 1.AUC 1.1.混淆矩阵 1.2.ROC曲线 1.3.关于AUC值 2.KS评价指标 3.洛伦兹曲线 4.Gini系数 5.Lift曲线和Gain曲线 5.1.Lift曲线 5.2.Ga ...
- 模型效果评估指标(ROC、AUC/KS、Lift、PSI)
以二分类问题为例 混淆矩阵(Confusion Matrix) 对测试集数据进行预测,得到下列混淆矩阵中的数据 注:TP.FN.FP.TN以预测的结果是否准确来命名. 预测模型评估指标的本质是从模型预 ...
- 分类器评估指标——混淆矩阵 ROC AUC KS AR PSI Lift Gain
目录 1.混淆矩阵 混淆矩阵原理 混淆矩阵的python代码 2.准确率(Accuracy).精确率(Precision).灵敏度(Sensitivity).召回率(Recall).特异度(Speci ...
- 一文详尽混淆矩阵、准确率、精确率、召回率、F1值、P-R 曲线、ROC 曲线、AUC 值、Micro-F1 和 Macro-F1
文章目录 二分类的评价指标 一.混淆矩阵与 TP.TN.FP.FN 二.准确率.精确率.召回率.F1值 三.P-R 曲线 四.ROC 曲线.AUC 值 五.P-R曲线和ROC曲线有什么区别,如何选择? ...
- mysql实现pr曲线_ROC 曲线与 PR 曲线
ROC 曲线和 PR 曲线是评估机器学习算法性能的两条重要曲线,两者概念比较容易混淆,但是两者的使用场景是不同的.本文主要讲述两种曲线的含义以及应用的场景. 定义 上面四个指标用大白话解释如下 Rec ...
- roc曲线怎么绘制_ROC曲线和PR曲线
在机器学习中,ROC曲线被广泛应用于二分类问题中来评估分类器的可信度,当处理一些高度不均衡的数据集时,PR曲线能表现出更多的信息. 在二分类问题中,分类器将一个实例的分类标记为正例还是负例,这可以用一 ...
- 分类性能度量指标:准确性(AC)、敏感性(SE)、特异性(SP)、F1评分、ROC曲线、PR(Precision-Recall)曲线、AUC曲线,混淆曲线
一:比较容易理解的比喻 以糖尿病人的筛查为例.第一个钟形代表正常人,第二个钟形代表糖尿病人.理想中,如果正常人和糖尿病人的血糖范围完全没有重合就好了.这样我就把标准定在中间那个最低点.低于此点的,就是 ...
- PR曲线,ROC曲线和AUC的区别
参考资料: https://www.cnblogs.com/pinard/p/5993450.html https://blog.csdn.net/dinosoft/article/details/4 ...
- 机器学习之性能度量指标——决定系数R^2、PR曲线、ROC曲线、AUC值、以及准确率、查全率、召回率、f1_score
一.线性回归的决定系数(也称为判定系数,拟合优度) 相关系数是R哈~~~就是决定系数的开方! 正如题所说决定系数是来衡量回归的好坏,换句话说就是回归拟合的曲线它的拟合优度!也就是得分啦~~ 决定系数它 ...
- ks检验python代码_如何使用适当的标准化方法从KolmogorovSmirnov测试(ks测试)中获得正确的p_值和ks_值?...
我正在研究一个财务问题,我要实现一个函数,在每只股票的信号回报率的正态分布之间使用Kolmogorov-Smirnov检验(KS-test).我将对每个股票的信号回报率在正态分布上运行KS测试,对于这 ...
最新文章
- 利用LSM实现更安全的linux
- 数据结构 c c java_用java做开发,却学c语言的数据结构,这样好吗?
- 详解C++移动语义std::move()
- 基于面向对象的图片轮播(js原生代码)
- Spark源码分析之DAGScheduler以及stage的划分
- Visual Studio的语法着色终于调得赏心悦目
- gitlab 使用现有 nginx 服务器
- 电话机器人源码智能电话机器人7项技术特点,教你选择合适的电话机器人!
- 记一次nsp解包(nscb解包nsp/xci,cpk解包,转hca、adx到MP3,转nsm、m2v到MP4方法集锦)
- winrar解压器_今日软件 | 马冬梅下载器、微软OFFICE、安卓超级备份、安卓原生启动器、高颜值音乐播放器、WinRAR、雷鸟下载、动态壁纸...
- Linux: 介绍make menuconfig中的每个选项含义【转】
- HEVC/H.265与AVC/H.264对比总结
- 微信扫一扫二维码直接打开手机默认外部浏览器
- 机器学习——PCA(主成分分析)与人脸识别
- iconfont字体图标以及css字体图标在线制作和使用(推荐)
- 苹果IOS开发者账号总结
- javascript之内置函数
- 阿里云ACP级认证考试心得+过关经验
- 百度18年兴衰背后:一部互联网流量变迁史
- 关于使用PyQt5时报错This application failed to start because no Qt platform plugin could be initialized及后续问题