二分类模型评价指标-KS值

网友投稿 1292 2022-09-02

二分类模型评价指标-KS值

二分类模型评价指标-KS值

title: ‘二分类模型评价指标-KS值’ author: “” date: “2018年7月13日” output: word_document

knitr::opts_chunk$set(echo = TRUE,eval=FALSE)

1. KS值

1.1 概念

KS值越大,表示模型能够将正、负客户区分开的程度越大。   通常来讲,KS>0.2即表示模型有较好的预测准确性。

柯尔莫哥洛夫-斯米尔诺夫检验(Колмогоров-Смирнов检验)基于累计分布函数,用以检验两个经验分布是否不同或一个经验分布与另一个理想分布是否不同。

绘制方式与ROC曲线略有相同,都要计算TPR和FPR。但是TPR和FPR都要做纵轴,横轴为把样本分成多少份。 步骤:

按照分类模型返回的概率降序排列把0-1之间等分N份,等分点为阈值,计算TPR、FPR对TPR、FPR描点画图即可

KS值即为Max(TPR-FPR)

###1.2 代码

提供​​R​​代码一份,仅供参考。

# 获取数据 --------------------------------------------------------------------#以ROCR包里自带数据为例# 获取数据 --------------------------------------------------------------------#以ROCR包里自带数据为例library(ROCR)data(ROCR.simple)result <- data.frame(pre_prob=ROCR.simple$predictions,true_label=ROCR.simple$labels)#概率大于0.5为正类,小于0.5负类result <- within(result,{ pre_label <- NULL pre_label[pre_prob>0.5] <- 1 pre_label[pre_prob<=0.5] <- 0})head(result)#install.packages("gmodels")library(gmodels)CrossTable(x=result$true_label,y=result$pre_label,prop.chisq=FALSE)#画PRC曲线:横轴TPR纵轴Precision.ThresholdTPR <- NULLFPR <- NULLfor(i in seq(from=1,to=0,by=-0.1)){ #判为正类实际也为正类 TP <- sum((result$pre_prob >= i) * (result$true_label == 1)) #判为正类实际为负类 FP <- sum((result$pre_prob >= i) * (result$true_label == 0)) #判为负类实际为负类 TN <- sum((result$pre_prob < i) * (result$true_label == 0)) #判为负类实际为正类 FN <- sum((result$pre_prob < i) * (result$true_label == 1)) TPR <- c(TPR,TP/(TP+FN)) FPR <- c(FPR,FP/(FP+TN))}library(ggplot2)ggplot(data=NULL,mapping = aes(x=seq(0,1,0.1),y=TPR))+ geom_point()+ geom_smooth(se=FALSE,formula = y ~ splines::ns(x,10), method ='lm')+ geom_line(mapping = aes(x=seq(0,1,0.1),y=FPR),linetype=6)max(TPR-FPR)#KS值为0.69

下面的图坐标轴标题有误,纵轴tpr/fpr,横轴为threshold阈值(感谢sinat_27339001指出)

knitr::include_graphics("../Picture/Pic09-KS.png",dpi = 600)

PS:并没有觉得这个KS值有什么用啊~

2. Lift值

以一个例子计算:   对于某二分类模型,针对​​​1000​​​名顾客打分。如果实际数据中有90名顾客产生购买行为。那么,​​Random Rate=9%​​​。按照概率降序排序,取前​​10%​​​。如果其中​​60​​​个人产生购买行为,那么排名前​​10%​​​的用户其实际购买率的​​Lift=(60/100)/9%=6.67​​。

3. 捕获率及响应率

按照概率降序排序,0-1等分,等分点为阈值响应率为各个等分区间内的属于正1的占该区间或者累计区间总体观察数量的百分比捕获率为各个等分区间内的属于正1的占该区间或者累计区间总体观察属于正1数量的百分比

2017-06-05 于杭州                       2018-07-13 于南京市建邺区新城科技园

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:rvest爬取链家网数据
下一篇:MySQL语句大全,每天跟着操作一遍,不信你不懂!(简单的mysql语句)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~