zoukankan      html  css  js  c++  java
  • KS(Kolmogorov-Smirnov)(转)

    来源:https://blog.csdn.net/u013421629/article/details/78217498

    KS(Kolmogorov-Smirnov):KS用于模型风险区分能力进行评估, 
    指标衡量的是好坏样本累计分部之间的差值。 
    好坏样本累计差异越大,KS指标越大,那么模型的风险区分能力越强。

    KS的计算步骤如下: 
    1. 计算每个评分区间的好坏账户数。 
    2. 计算每个评分区间的累计好账户数(注意是累计,也就是包含前面的区间)占总好账户数比率(good%)和累计坏账户数占总坏账户数比率(bad%)。 
    3. 计算每个评分区间累计坏账户占比与累计好账户占比差的绝对值(累计good%-累计bad%),然后对这些绝对值取最大值即得此评分卡的K-S值。

    在具体编程实现上可以利用画roc曲线方式:

    def eval_ks(preds, dtrain):
        labels = dtrain.get_label()
        fpr, tpr, thresholds = roc_curve(labels, preds)
        ks = 0
        for i in range(len(thresholds)):
            if tpr[i] - fpr[i] > ks:
                ks = tpr[i] - fpr[i]
        return 'KS', ks

    只不过这里面的分组,相当于每个单独的元素作为一组而已,TPR就是累计好样本占比,FPR是累计坏样本占比。roc_curve的thresholds是根据preds进行排序每次取其中一个作为threshold,从大到小依次取值,然后算出相应的TPR,FPR,这里面的计算结果一般tpr都大于fpr。

  • 相关阅读:
    团队-科学计算器-成员简介及分工
    提交错误
    《结对-结对编项目作业名称-需求分析》
    对软件工程课程的期望
    自我介绍
    课堂作业0
    selenium+Java刷新浏览器
    不要焦虑~~
    JAVA代码实现得到指定文件夹下的文件名
    安全检测检查清单(IOS版APP)
  • 原文地址:https://www.cnblogs.com/gczr/p/8761308.html
Copyright © 2011-2022 走看看