KS(Kolmogorov-Smirnov)是一个用于模型风险区分能力评估的指标,通过衡量好坏样本累计分布之间的差值来评估模型性能,在信贷风控、欺诈检测等领域广泛应用。
KS(Kolmogorov-Smirnov)概念
定义
KS用于模型风险区分能力进行评估,指标衡量的是好坏样本累计分布之间的差值,好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。
计算方法
1、数据准备:需要包含预测值和真实标签的数据表,表中必须包含预测值和真实值两列,y_true是真实值列的表名,y_pre是预测值列的表名,good和bad是真实值中0,1代表的label,一般好用户用0表示,坏用户用1表示。
2、数据排序:按照预测值从小到大平均分成num组,新增一列rank,对每个区间使用从上到下的数字标记,此区间所有样本的rank值均相同。
3、统计结果:对score列进行统计,得到group_sum、group_min、group_max和mean等。
4、好用户统计:计算每个区间的好用户数量,并计算各行的good_sum和good_percent,其中最重要的是计算各行的good_percent,即不同阈值下的TPR(True Positive Rate)。
5、坏用户统计:与好用户统计方法一致,计算每个区间的坏用户数量,并计算各行的bad_sum和bad_percent,即不同阈值下的FPR(False Positive Rate)。
6、计算KS值:最后一行更新total的内容,在最后一行的total中,更新KS的值,即max(abs(bad_percent-good_percent))。
直观理解
可以通过绘制KS曲线来直观理解KS值的含义,横坐标为模型概率分数(0~1),纵坐标为百分比(0~100%),红色曲线代表累计坏账户占比,绿色曲线代表累计好账户占比,蓝色曲线代表KS曲线,KS值就是KS曲线中两条曲线之间的最大间隔距离。
相关问题与解答
1、问题:为什么风控中常用KS指标来评价模型效果,而不用准确率、召回率等?
答案:因为KS指标倾向于从概率角度衡量正负样本分布之间的差异,能够更好地处理样本不均衡的问题,KS值考虑了不同阈值下的表现,而不仅仅是一个固定的分类阈值。
2、问题:最大KS值只是一个宏观结果,那么在不同cutoff内取到max时,模型性能有什么差异?
答案:在不同的cutoff点上,模型的性能可能会有所不同,如果在某个较低的cutoff点上取到最大KS值,可能意味着模型对于较低风险的样本有更好的区分能力;而在较高的cutoff点上取到最大KS值,则可能意味着模型对于较高风险的样本有更好的识别能力,这并不意味着在所有情况下都应该追求最大的KS值,因为不同的业务场景和风险偏好可能需要不同的cutoff点来平衡通过率和坏账率之间的关系。