信用评分系统运行原理中篇-分箱逻辑(1)

简介: 信用评分系统运行原理中篇-分箱逻辑(1)

前言


本篇承接上篇


信用评分系统运行原理上篇


分箱逻辑比较复杂 设计到很多的算法


为了确保分析的准确性 我通过pycharm编译器Debug的方式跑这段代码


一步一步的分析代码的实现逻辑


编译器环境的准备


python代码准备


image.png


image.png


image.png


image.png


image.png


image.png


python依赖包安装



image.png


pip3 install numpy
pip3 install pandas
pip3 install matplotlib==3.2.0
pip3 install --target=./venv/lib/python3.7/site-packages seaborn
pip3 install ipython
pip3 install xlrd
pip3 install sklearn


代码逻辑分析


自动分箱


# 调用自定义分箱
dfx1, ivx1, cutx1, woex1 = mono_bin(train.SeriousDlqin2yrs, train.RevolvingUtilizationOfUnsecuredLines, n=10)
# 自定义自动分箱函数
def mono_bin(Y, X, n=20):
    r = 0
    # 好人个数 6936
    good = Y.sum()
    # 坏人个数 94957
    bad = Y.count() - good
    # np.abs(0)=0.9272727272727272m
    absR = np.abs(r)
    while absR < 1: # 满足循环条件 进入循环体
        # 先对训练集X排序 再分组
        dfX = X.rank(method="first")
        cutPd = pd.qcut(dfX, n)
        d1 = pd.DataFrame({"X": X, "Y": Y, "Bucket": cutPd}) # X.rank(method="first")
        d2 = d1.groupby("Bucket", as_index = True)
        d2Mean = d2.mean()
        d2MeanX = d2Mean.X
        r, p = stats.spearmanr(d2MeanX, d2.mean().Y) # 使用斯皮尔曼等级相关系数来评估两个变量之间的相关性
        n = n - 1
    d3 = pd.DataFrame(d2.X.min(), columns = ['min'])
    d3['min']=d2.min().X
    d3['max'] = d2.max().X
    d3['sum'] = d2.sum().Y
    d3['total'] = d2.count().Y
    d3['rate'] = d2.mean().Y
    d3['woe'] = np.log((d3['rate'] / (1-d3['rate'])) / (good/bad))
    d3['goodattribute'] = d3['sum'] / good
    d3['badattribute'] = (d3['total'] - d3['sum']) / bad
    iv = ((d3['goodattribute'] - d3['badattribute']) * d3['woe']).sum()
    d4 = (d3.sort_values(by = 'min'))
    print(d4)
    cut=[]
    cut.append(float('-inf'))
    for i in range(1, n+1):
        qua = X.quantile(i/(n+1))
        cut.append(round(qua,4))
    cut.append(float('inf'))
    woe = list(d4['woe'].round(3))
    return d4, iv, cut, woe
相关文章
|
1月前
|
人工智能 人机交互 智能硬件
从大模型的原理到提示词优化
本文介绍了大语言模型(LLM)的基本概念及其工作原理,重点探讨了AI提示词(Prompt)的重要性和几种有效技巧,包括角色设定、One-shot/Few-shot、任务拆解和思维链。通过实例解析,展示了如何利用这些技巧提升LLM的输出质量和准确性,强调了提供高质量上下文信息对优化LLM表现的关键作用。
48 0
|
6月前
|
移动开发 数据可视化
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(二)
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(二)
|
6月前
|
数据可视化
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(一)
R语言两层2^k析因试验设计(因子设计)分析工厂产量数据和Lenth方法检验显著性可视化|数据分享(一)
|
6月前
|
C++
【SPSS】两独立样本T检验分析详细操作教程(附案例实战)
【SPSS】两独立样本T检验分析详细操作教程(附案例实战)
1178 0
|
6月前
|
C++
【SPSS】两独立样本的曼-惠特尼U检验详细操作教程(附案例实战)
【SPSS】两独立样本的曼-惠特尼U检验详细操作教程(附案例实战)
1624 0
|
6月前
逻辑模型—第一性原理
逻辑模型—第一性原理
|
6月前
【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)
【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)
197 0
|
存储 数据可视化 数据挖掘
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
知识点丨重测序数据进行kinship亲缘关系分析、构建IBS矩阵的方法与介绍
|
算法 机器人 数据挖掘
量化合约套利机器人策略开发部署执行逻辑源码实例分析
量化合约套利机器人策略开发部署执行逻辑源码实例分析
|
算法 搜索推荐 数据可视化
异动分析技术解决方案—异动归因之指标拆解
唯一不变的是变化, 在拥抱它前,请事先探知、归因、并充分准备。 在相对完善的指标体系建设背景下,我们需要通过指标以及指标波动的解读来描述、追踪、推动业务。当一个指标波动时,我们首先需要从业务视角判断其波动是否异常,即异动检测,其次判断异常背后的原因是什么,即异动归因。 归因的方法有多种,这篇文章的重点是指标拆解,也是我们做业务分析时最常用到的方法。 我们的目的是解放人力,将指标拆解实现自动化,一方面可以加快业务迭代速度,快速定位问题;另一方面可以对可能产生异动的维度进行全局量化,增强可比性,明确下一步的业务行动点的优先级。自动化异变归因的目的是为了尽快判断并抓住机遇,寻求以数据驱动作为灯塔
8009 2
下一篇
无影云桌面