roc曲线python_风控(一):ROC曲线和K-S曲线比较及python实现

本文介绍了ROC曲线和K-S曲线在风控中的应用,对比了两者在评估模型性能上的区别。通过Python代码展示了如何计算混淆矩阵、ROC曲线、K-S曲线以及相关指标,如Accuracy、Precision、Recall和F1-Score。ROC曲线中的AUC和K-S曲线的KS值用于衡量模型区分正负样本的能力,较高的AUC和KS值表明模型效果更好。

1.混淆矩阵(一级指标)

以分类模型中最简单的二分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。我们通过样本的采集,能够直接知道真实情况下,哪些数据结果是positive,哪些结果是negative。同时,我们通过用样本数据跑出分类型模型的结果,也可以知道模型认为这些数据哪些是positive,哪些是negative。因此,我们就能得到这样四个基础指标,我称他们是一级指标(最底层的):

真实值是positive,模型认为是positive的数量(True Positive=TP)

真实值是positive,模型认为是negative的数量(False Negative=FN):这就是统计学上的第一类错误(Type I Error)

真实值是negative,模型认为是positive的数量(False Positive=FP):这就是统计学上的第二类错误(Type II Error)

真实值是negative,模型认为是negative的数量(True Negative=TN)

注:T肯定是对的,F是错的。

预测性分类模型,肯定是希望越准越好。那么,对应到混淆矩阵中,那肯定是希望TP与TN的数量大,而FP与FN的数量小。所以当我们得到了模型的混淆矩阵后,就需要去看有多少观测值在第二、四象限对应的位置,这里的数值越多越好;反之,在第一、三象限对应位置出现的观测值肯定是越少越好。

2.二级指标

但是,混淆矩阵里面统计的是个数,有时候面对大量的数据,光凭算个数,很难衡量模型的优劣。因此混淆矩阵在基本的统计结果上又延伸了如下4个指标,我称他们是二级指标(通过最底层指标加减乘除得到的):

准确率(Accuracy)—— 针对整个模型

精确率(Precision)

灵敏度(Sensitivity):就是召回率(Recall)

特异度(Specificity)

可以将混淆矩阵中数量的结果转化为0-1之间的比率。便于进行标准化的衡量。

3.三级指标

在这四个指标的基础上在进行拓展,会产令另外一个三级指标这个指标叫做F1 Score。他的计算公式是:

其中,P代表Precision,R代表Recall。

F1-Score指标综合了Precision与Recall的产出的结果。F1-Score的取值范围从0到1的,1代表模型的输出最好,0代表模型的输出结果最差。

4.ROC曲线

ROC曲线:Receiver Operating Characteristic曲线,横轴是FPR(False Positive Rate),纵轴是TPR(True Positive Rate)。

AUC(Area Under ROC Curve):ROC曲线下的面积。

5.K-S曲线

洛伦兹曲线(Kolmogorov-Smirnov curve)值越大,表示模型能够将正、负客户区分开的程度越大。KS值的取值范围是[0,1] 。

KS曲线是两条线,其横轴是阈值,纵轴是TPR(上面那条)与FPR(下面那条)的值,值范围[0,1] 。两条曲线之间之间相距最远(差)的地

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值