ks 曲线_一文读懂评分卡的IV、KS、AUC、GINI指标

本文介绍了评价评分卡有效性的常用指标,包括散度(IV)、KS值、AUC和GINI系数。通过数学解析探讨了KS值的凹凸性、极大值存在性及F(s|B)曲线为何总在F(s|G)之上。同时,阐述了ROC曲线和AUROC值的概念,以及它们在模型区分能力评估中的应用。GINI系数作为AUC的另一种表达形式,用于量化模型的区分能力。
摘要由CSDN通过智能技术生成

c810700c5fe95030bde13d9023a0b2e8.png

前言:

当一张评分卡构建完成时,筛选出一组特征生成了分数,我们会想要知道这个分数是否靠谱,即是否可以依赖这个分数将好坏客户区分开来,这个时候就需要评判评分卡有效性的指标。

测量评分卡好坏区分能力的指标有许多,本文就为大家介绍几个常用的定量指标:

  1. 散度(分数为连续函数)与信息比率(IV);
  2. KS值

在这篇文章当中,花了极大的笔墨从数学的角度证明了KS值的存在性和函数性质问题:

bbb35accb3b8e45660a833612bb2e4b7.png
KS分布
  • 为什么F(s|B)为凹函数、F(s|G)为凸函数?
  • 为什么F(s|B)-F(s|G)存在极大值(最大值)?
  • 为什么F(s|B)曲线在F(s|G)曲线之上?

3. ROC曲线、AUROC值与GINI系数。

----------------------------------------------------------------------------------------------

一、 散度与IV值

1.1 散度

散度为信息比率的连续版本。而评分卡分数是基于有限样本计算出的分数分布,并不一定是完全连续函数,所以就衍生出了离散版本的散度----信息比率IV。

【定义1】给定评分卡分数s,令f(s|B)、f(s|G)分别为好客户与坏客户的分数概率密度函数,定义散度为

下面,考虑3个极端情况去理解散度的实际应用:

  • 坏客户的分数始终大于好客户的分数:if
    , so
    . 这时,模型对好坏客户完全没有区分度。
  • 坏客户的分数始终大于好客户的分数:if
    , so
    . 这时,模型对好坏客户仍完全没有区分度。
  • 坏客户的分数始终小于好客户的分数:if
    , so
    . 如果每个分数档,好客户与坏客户分差越大,散度D就越大,那么模型对好坏客户的区分度就越好。

1.2 信息比率IV

上文也说过,信息比率IV是散度的离散版本,即将连续性函数s离散化就能得到信息比率:将一组分数分成细小的分数区间,在每个区间上对函数进行求和,代替连续函数的积分。

【定义2】 假设存在n个区间,i=1,2,...,n,每个区间的好坏客户数量为

,且整体样本的好坏客户
好的,我可以回答您的问题。您可以按照以下步骤在sklearn中绘制ROC曲线: 1. 准备数据:首先,您需要准备测试数据集和训练数据集。您还需要使用训练数据集来训练逻辑回归模型。 2. 训练模型:使用训练数据集训练逻辑回归模型。您可以使用以下代码: ``` from sklearn.linear_model import LogisticRegression # 创建逻辑回归对象 lr = LogisticRegression() # 使用训练数据集来训练模型 lr.fit(X_train, y_train) ``` 3. 预测概率:使用测试数据集来预测类别概率。您可以使用以下代码: ``` # 预测测试数据集的类别概率 y_pred_proba = lr.predict_proba(X_test)[:,1] ``` 4. 计算ROC曲线数据:计算真阳性率(TPR)和假阳性率(FPR)。您可以使用以下代码: ``` from sklearn.metrics import roc_curve, auc # 计算ROC曲线数据 fpr,tpr,thresholds = roc_curve(y_test, y_pred_proba) roc_auc = auc(fpr,tpr) ``` 5. 绘制ROC曲线:使用Matplotlib库绘制ROC曲线。您可以使用以下代码: ``` import matplotlib.pyplot as plt # 绘制ROC曲线 plt.title('Receiver Operating Characteristic') plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc) plt.legend(loc = 'lower right') plt.plot([0, 1], [0, 1],'r--') plt.xlim([0, 1]) plt.ylim([0, 1]) plt.ylabel('True Positive Rate') plt.xlabel('False Positive Rate') plt.show() ``` 这是在sklearn中绘制ROC曲线的简单步骤。同时,您还可以使用KS曲线来评估模型性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值