尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

风控评分卡模型原理与应用(六):模型评价指标KS和ROC

风控评分卡模型原理与应用(六):模型评价指标KS和ROC
📅 发布时间:2026/7/17 6:19:52

信贷评分模型的评估指标常见的有P-R曲线、AUC、KS、混淆矩阵、AR、洛伦茨曲线等,这篇文章主要介绍评分卡模型常用的判断指标AUC和KS。

AUC

对于分类问题,我们一般关注的是分类的准确率。信贷评分模型中常用的评估指标为AUC

混淆矩阵(Confuse Matrix)

针对一个二分类问题,即将实例分成正类(positive)或负类(negative),在实际分类中会出现以下四种情况:
(1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive )
(2)若一个实例是正类,但是被预测为负类,即为假负类FN(False Negative )
(3)若一个实例是负类,但是被预测为正类,即为假正类FP(False Positive )
(4)若一个实例是负类,并且被预测为负类,即为真负类TN(True Negative )

将上面说的几种情况列出来,就是一个混淆矩阵:

通过混淆矩阵可以大致看出预测正确的数量和预测错误的数量。

ROC曲线和AUC

在正式介绍ROC之前,我们还要再介绍两个指标,这两个指标的选择使得ROC可以无视样本的不平衡。这两个指标分别是:灵敏度(sensitivity)和特异度(specificity),也叫做真正率(TPR)和 真负率(TNR),具体公式如下。

  • 真正率(True Positive Rate , TPR),又称灵敏度:
    TPR=正样本预测正确数正样本总数=TPTP+FNTPR = \frac{正样本预测正确数}{正样本总数} = \frac{TP}{TP+FN}TPR=正样本总数正样本预测正确数​=TP+FNTP​

  • 假负率(False Negative Rate , FNR) :
    FNR=正样本预测错误数正样本总数=FNTP+FNFNR = \frac{正样本预测错误数}{正样本总数} = \frac{FN}{TP+FN}FNR=正样本总数正样本预测错误数​=TP+FNFN​

  • 假正率(False Positive Rate , FPR) :
    FPR=负样本预测错误数负样本总数=FPTN+FPFPR = \frac{负样本预测错误数}{负样本总数} = \frac{FP}{TN+FP}FPR=负样本总数负样本预测错误数​=TN+FPFP​

  • 真负率(True Negative Rate , TNR),又称特异度:
    TNR=负样本预测正确数负样本总数=TNTN+FPTNR = \frac{负样本预测正确数}{负样本总数} = \frac{TN}{TN+FP}TNR=负样本总数负样本预测正确数​=TN+FPTN​

其中假负率FNR=1−TPR、假正率FPR=1−TNR

ROC

ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。曲线对应的纵坐标是TPR,横坐标是FPR。如下就是一个ROC曲线:

ROC曲线是通过遍历所有阈值来绘制整条曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的在ROC曲线图中也会沿着曲线滑动。

通过计算过程可以知道,ROC 曲线中的坐标(0,0)表示以概率为 1 作为 cutoff 时模型的预测情况,此时模型将所有的样本都预测为负样本,即在混淆矩阵中TP=FP=0,所TPR=FPR=0;坐标(1,1)表示以概率为 0 作为 cutoff 时模型的预测情况,此时模型将所有的样本都预测为正样本即在混淆矩阵中FN=TN=0,所以TPR=FPR=1。

那么如何判断一个模型的ROC曲线是好的呢?这个还是要回归到我们的目的:FPR表示模型对于负样本误判的程度,而TPR表示模型对正样本召回的程度。我们所希望的当然是:负样本误判的越少越好,正样本召回的越多越好。所以总结一下就是TPR越高,同时FPR越低(即ROC曲线在左上部分且越靠近左上角越好),那么模型的性能就越好。

AUC

ROC需要看出才能判断出好坏,因此为了量化这一指标就有了AUC。AUC(Area Under Curve)是处于ROC曲线下方的那部分面积的大小。AUC越大,代表模型的性能越好。

一般AUC大于0.75或者0.8时认为模型效果较好可用,而大于0.95的话要警惕过拟合的风险。

KS

KS与AUC类似,是机器学习中常用于二分类模型的模型效果评估指标.KS全称为Kolmogorov-Smirnov,它的公式定义如下:
s=max(TPR−FPR)s=max(TPR−FPR)s=max(TPR−FPR)
其中TPR和FPR就是前面ROC曲线中介绍过的,TPR(True PositiveRate) : 正样本被检查出来的概率 , FPR(False PositiveRate): 负样本被模型错误归为正样本的概率。

按照概率分组(或者以最后的评分卡数值)为x轴,TPR、FPR、(TPR-FPR)为y轴所组成的三条变化曲线,然后标出KS值的所在位置(即TPR与FPR的最大间隔点)

KS 值反应了模型对好坏样本的区分能力,KS 值越大表示对好坏样本的区分能力越强。

python调用sklearn的roc_curve函数计算KS和绘制KS曲线的代码如下:

fromsklearn.metricsimportroc_curveimportpandasaspdimportmatplotlib.pyplotaspltimportnumpyasnp# -----------数据生成----------------------------score_dict={'score':[0.71,0.612,0.127,0.330,0.428,0.889,0.188,0.229,0.889,0.022,0.43,0.952,0.622,0.11,0.22,0.33,0.44,0.55,0.66,0.77,0.88,0.99],'label':[1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1]}# score与labeldf=pd.DataFrame(score_dict)# 将数据转为df# -------------计算ks-----------------------------fpr,tpr,thresholds=roc_curve(df.label,df.score)# 计算fpr, tprks_value=max(abs(fpr-tpr))# 计算KS: abs(fpr-tpr)最大者就是KS# ----------画KS曲线-------------------------------thresholds[0]=max(df['score'])+0.01# 修正thresholds的最大值plt.figure(figsize=(10,5))# 设置图片的大小plt.plot(thresholds,fpr,label='fpr')# 标示fprplt.plot(thresholds,tpr,label='tpr')# 标示tprplt.plot(thresholds,abs(fpr-tpr),label='fpr-tpr')# 标示fpr-tprplt.xlabel('thresholds')# 标示x坐标轴# 标记ksidx=np.argwhere(abs(fpr-tpr)==ks_value)[0,0]ks_thresholds=thresholds[idx]plt.plot((ks_thresholds,ks_thresholds),(fpr[idx],tpr[idx]),label='ks - {:.2f}'.format(ks_value),color='r',marker='o',markerfacecolor='r',markersize=5)plt.scatter((ks_thresholds,ks_thresholds),(fpr[idx],tpr[idx]),color='r')plt.legend()plt.show()print('阈值:',ks_thresholds)print('KS:',ks_value)


参考文章:
https://geekdaxue.co/read/yingtaoxiang@hello/gutcdg
https://www.bbbdata.com/text/25

相关新闻

  • Docker 容器 + Docker Compose单机部署理发店系统
  • 天津爱彼回收价格查询及靠谱回收平台实测排行(2026年7月最新数据) - 尊奢回收二奢平台
  • 别把发酵罐当CDMO——当概念跑在能力前面

最新新闻

  • HarmonyOS7 单元测试:从 @Test 到覆盖率
  • 超聚变2288H V6服务器Ubuntu 24.04安装与优化指南
  • 为什么这款Linux备份神器值得关注?gh_mirrors/oth/others项目中的restic详解
  • FreeAskInternet:本地化AI搜索聚合与答案生成解决方案
  • 基于改进YOLOv8s的玫瑰鲜切花智能分级技术解析
  • Ascend C WelfordUpdate归一化API

日新闻

  • 佛山青少年训练营推荐:军博营地实力顶尖 - 秋山寄远
  • 如何快速上手PvZ2 Gardendless:免费Web版植物大战僵尸2完整指南
  • jiuwen-deepsearch核心功能详解:规划-检索-反思三合一智能工作流

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号