您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
(ks值)-ks直播
模型,曲线,阈值(ks值)-ks直播
发布时间:2016-12-08加入收藏来源:互联网点击:
很多朋友想了解关于ks值的一些资料信息,下面是小编整理的与ks值相关的内容分享给大家,一起来看看吧。
大家都知道,在我们搭建完机器学习模型后,还需要对模型的好坏进行评估,这里我们以实战案例|金融行业客户流失预警模型,来给大家分享两种模型评估方法:ROC曲线与KS曲线。
ROC曲线ROC曲线是由不同阈值下的模型假警报率(FPR)与命中率(TPR)所组成的,如下图所示,其中FPR是横坐标,TPR是纵坐标。
命中率(TPR)计算公式为:
TPR=TP/(TP+FN)
假警报率(FPR)计算公式为:
FPR=FP/(FP+TN)
其中:
TP:正确肯定的数量
FN:漏报
FP:误报
TN:正确否定的数量
一个好的模型应该让TPR尽可能的高,而FPR尽可能低。从上图,我们可以看到,FPR与TPR之间是正相关,所以ROC曲线越靠近左上角,越陡峭,则这个模型就更完善。
当然,如果用曲线来进行描述,可能有些抽象,我们可以用AUC来判断模型的好坏。AUC指的是ROC曲线下方的面积,该值取值范围一般为0.5~1,越靠近1,则模型越好。
现实数据中,通常存在许多扰动因子,所以模型的AUC值一般达到0.75就可以接受,如果能达到0.85以上,那这个模型就非常好了。
我们来看看如何用Python绘制ROC曲线,首先查看不同阈值下的假警报率和命中率。
代码如下:
from sklearn.metrics import roc_curvefpr,tpr,thres = roc_curve(Y_test,Y_pred_proba[:,1])data = pd.DataFrame()data['阈值'] = list(thres)data['假警报率'] = list(fpr)data['命中率'] = list(tpr)data.head(10)接着就是绘制该模型的ROC曲线了。
代码如下:
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']plt.plot(fpr,tpr)plt.title('ROC曲线')plt.xlabel('FPR')plt.ylabel('TPR')plt.show()AUC值为0.798,看来这个模型还是不错的,AUC值计算代码如下:
from sklearn.metrics import roc_auc_scorescore = roc_auc_score(Y_test,Y_pred_proba[:,1])KS曲线KS曲线本质上与ROC曲线是相同的,它关注的也是假警报率(FPR)与命中率(TPR),但是它的横坐标不再是假警报率(FPR),而是阈值,纵坐标为命中率与假警报率的差值。如下图:
跟ROC曲线一样,KS曲线也有一个量化指标用来衡量模型的预测结果—KS值,其计算公式为:
KS = max(TPR-FPR)
即KS值就是KS曲线的峰值。当KS值小于0.2时,我们认为模型的区分能力较差;
在0.2-0.3之间时,模型具有一定的区分能力;
在0.3-0.5之间时,模型具有较强的区分能力;
当然KS值也不是越大越好,当KS值大于0.75时,往往代表模型有问题。
我们来看看如何用Python绘制KS曲线,首先查看不同阈值下的假警报率和命中率。
代码如下:
from sklearn.metrics import roc_curvefpr,tpr,thres = roc_curve(Y_test,Y_pred_proba[:,1])data = pd.DataFrame()data['阈值'] = list(thres)data['假警报率'] = list(fpr)data['命中率'] = list(tpr)data.head(10)接着就是绘制该模型的KS曲线了。
代码如下:
plt.plot(thres[1:],tpr[1:])plt.plot(thres[1:],fpr[1:])plt.plot(thres[1:],tpr[1:]-fpr[1:])plt.title('KS曲线')plt.xlabel('阈值')plt.legend(['tpr','fpr','tpr-fpr'])plt.gca().invert_xaxis()plt.show()KS值为0.493,看来这个模型有较强的区分能力,KS值计算代码如下:
max(tpr-fpr)此时阈值为0.284,代码为:
data['TPR-FPR']=data['命中率'] - data['假警报率']data[data['TPR-FPR']==max(data['TPR-FPR'])]小结本文详细介绍了ROC曲线和KS曲线的原理和代码实现方法,有兴趣的读者可以自己实现一下。对搭建好的模型进行评估是十分重要的,没有评估过的模型投入使用是不安全的。通过对模型的评估可以不断优化模型。原文链接:
https://mp.weixin.qq.com/s/tJ6TBjEz2hYUaDhuKeQGaA
本文到此结束,希望对大家有所帮助呢。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |