信用评分卡开发流程-附上Github代码、数据集(Python语言)

Credit-score-card-Give-me-some-credit

 

Credit score card, using "Give me some credit" dataset.

————————

个人技术公众号:解决方案工程师

欢迎同领域的朋友关注、相互交流。

————————

Credit-score-card-Give-me-some-credit

Credit score card, using "Give me some credit" dataset.

信用评分卡 开发流程

一. 数据获取

面向的客户群体:

(1)存量客户数据(已开展相关融资类业务的客户,包括个人客户和机构客户)

(2)潜在客户数据(未来拟开展相关融资类业务的客户)

数据集描述:

(1)名称:Give Me Some Credit

(2)来源:Kaggle上一个经典的评分卡案例

(3)内容: 基本属性:包括了借款人当时的年龄 偿债能力:包括了借款人的月收入、负债比率 信用往来:两年内35-59天逾期次数、60-89天逾期次数、90天或高于90天逾期的次数 财产状况:包括了开放式信贷和贷款数量、不动产贷款或额度数量 贷款属性:暂无 其他因素:包括了借款人的家属数量(不包括本人在内) 时间窗口:自变量的观察窗口为过去两年,因变量表现窗口为未来两年

(4)属性: 'ID':'用户ID' 'SeriousDlqin2yrs':'好坏客户' 'RevolvingUtilizationOfUnsecuredLines':'可用额度比值' 'age':'年龄' 'NumberOfTime30-59DaysPastDueNotWorse':'逾期30-59天笔数' 'DebtRatio':'负债率' 'MonthlyIncome':'月收入' 'NumberOfOpenCreditLinesAndLoans':'信贷数量' 'NumberOfTimes90DaysLate':'逾期90天笔数' 'NumberRealEstateLoansOrLines':'固定资产贷款量' 'NumberOfTime60-89DaysPastDueNotWorse':'逾期60-89天笔数' 'NumberOfDependents':'家属数量'

样本数量:150000条

特征数量:10个

二. 数据清洗

目的:为了将获取的原始数据转化为可用作模型开发的格式化数据

方法:

(1)缺失值处理 直接删除含有缺失值的样本 根据样本之间的相似性填补缺失值 根据变量之间的相关关系填补缺失值

(2)异常值处理 根据个人经验,如年龄范围、家庭人口数量等 根据直方图观察 根据箱型图观察

(3)重复值删除 (4)不平衡样本处理

意义:保证数据的完整性、全面性、合法性、唯一性

三. 数据分箱

定义:是一种局部平滑方法,通过考察“邻居”(周围的值)来平滑存储数据的值,是对连续变量离散化的一种称呼

目的:去噪,将连续数据离散化,增加粒度

表示:用“箱的深度”表示不同的箱里有相同个数的数据,用“箱的宽度”来表示每个箱值的取值区间

分类:

(1)等距分段:是指分段的区间是一致的,比如年龄以10年作为1个分段

(2)等深分段:是先确定分段数量,然后令每个分段中数据数量大致相等

(3)最优分段:又称监督离散化,通过将属性值域划分为区间,用来减少给定连续属性值的个数

(4)递归划分:是一种基于条件推断查找较佳分组的算法 (5)人工手动分箱:针对上述方法无法合理拆分的特征,进行手动分箱

意义:

(1)离散化后的特征对异常数据有很强的稳定性。如年收入特征>10000是1类,否则是0。如果特征没有离散化,一个异常数据“年收入100000”会给模型造成很大的干扰

(2)单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,增加拟合能力

(3)特征离散化后,模型会更稳定,如如果对用户年龄离散化,20-30作为一个区间,不会因为一个用户年龄长了一岁就变成一个完全不同的人

(4)特征离散化后,可以简化回归模型,降低模型过拟合的风险 (5)可以将缺失作为独立的一类带入模型

四. 相关性分析

定义:对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度

要求:相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析

常用的衡量随机变量相关性的方法:

(1)Pearson相关系数:即皮尔逊相关系数,用于横向两个连续性随机变量间的相关系数

(2)Spearman相关系数:即斯皮尔曼相关系数,用于衡量分类定序变量间的相关程度

(3)Kendall相关系数:即肯德尔相关系数,也是一种秩相关系数,但它所计算的对象是分类变量

评价手段:相关性矩阵或矩阵热力图

(1)相关系数表示两两相关的程度,所以只有对角矩阵的对角线是变量和自身的相关系数,其值永远是1

(2)矩阵中的小数代表相关性程度,越接近1越相关

(3)通常线性系数大于0.7说明线性相关度比较高

(4)符号为负表示负相关

解决相关性过高/过低的方法:

(1)增大样本量

(2)岭回归

(3)逐步回归法

(4)主成分回归

(5)人工去除

意义:当自变量较多时,可以判断有无多重共线性问题

五. 变量选择

定义:通过统计学的方法,筛选出对违约状态影响最显著的指标,主要包括单变量特征选择方法 和基于机器学习模型的方法

评价指标:

(1)WOE(Weight of Evidence) 作用: WOE的含义类似于信息熵反映了自变量取值对目标变量的影响 WOE越大表示该特征正向作用越大 它对数据进行了归一化处理,也就是将所有不同特征划在了统一的尺度上 公式:WOE=ln(good attribute/bad attribute)

(2)IV(Information Value) 作用: WOE没有考虑分组中样本占整体样本的比例,如果一个分组的WOE值很高,但是样本数占整体样本数很低,则对变量整体预测的能力会下降 IV值考虑了分组中样本占整体样本的比例,相当于WOE的加权求和 计算特征内部的信息含量,如果信息含量足够大,则表示其为有价值的特征 标准: 小于 0.02: 预测能力极低(Unpredictive) 0.02 到 0.1 之间: 预测能力较低(Weak) 0.1 到 0.3 之间: 预测能力中等(Medium) 0.3 到 0.5 之间: 预测能力较强(Strong)

意义:

(1)剔除对因变量影响不明显的变量/特征

(2)选取比较重要的变量加入模型,预测强度可以作为判断变量是否重要的一个依据

六. 模型建立与评估

常用模型:

(1)逻辑回归(Logistics Regression) 逻辑回归经过信贷历史的反复验证是有效的 模型比较稳定相对成熟 建模过程透明而不是黑箱 不太容易过拟合

(2)梯度提升决策树(Gradient Boosting Decision Tree)

(3)极端梯度增强算法(Extreme Gradient Boosting, XGBoost)

(4)轻量级梯度提升机(Light Gradient Boosting Machine, Light GBM)

评价指标:

(1)ROC(Receiver Operating Characteristic)曲线 定义:画在二维平面上的曲线,平面的横坐标是False Positive Rate(FPR),纵坐标是True Positive Rate(TPR) 作用:ROC曲线高于对角线的程度越大,则效果越好

(2)AUC(Area Under Curve)值 定义:AUC的值就是处于ROC曲线中,对角线下方部分面积的大小 作用:通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的性能

评估属性:

(1)区分能力

(2)预测能力

(3)稳定性

七. 构建评分卡

参数:

(1)基础分值

(2)比率翻倍的分值 PDO

(3)好坏比

评价指标:

(1)ROC曲线

(2)KS(Kolmogorov-Smirnov)曲线

计算方法:个人总评分 = 基础分 + 各部分得分

八. 生成评分卡

                 

代码地址:https://github.com/XYhelloworld/Credit-score-card-Give-me-some-credit

<think>好的,我现在需要处理用户关于寻找泰迪杯比赛示例代码或项目源码的请求。首先,用户提到了两个引用,引用1是关于2024泰迪杯B题的Python代码实现,引用2是关于软科中国大学排名的研究。用户的主要需求是获取与泰迪杯相关的代码资源,特别是示例代码和项目源码。 首先,我应该确认用户提到的泰迪杯比赛的具体信息。泰迪杯通常指的是全国大学生数据挖掘竞赛,由泰迪杯组委会主办,主要涉及数据分析、机器学习等领域。用户提供的引用1提到了B题的图像文本检索,这属于多模态数据处理的范畴,可能涉及深度学习模型如卷积神经网络和自然语言处理技术。引用中提到的image_data.csv示例内容,说明数据可能包含图像ID和对应的文件名,用户可能需要处理这类数据集代码示例。 接下来,用户希望找到示例代码或项目源码。根据经验,这类比赛的官方渠道通常会提供部分示例代码或往届优秀作品的参考。因此,我应该建议用户首先访问泰迪杯的官方网站或官方指定的平台,如竞赛官网、GitHub仓库、或者合作教育平台,这些地方可能会有往届的获奖作品或官方提供的示例代码。 另外,引用1中的示例代码可能与图像处理和文本检索相关,用户可能需要具体的代码实现,比如使用Python的深度学习库如TensorFlow或PyTorch进行多模态特征融合。因此,在建议中应该提及相关的技术栈,并推荐用户参考官方提供的资料,或者联系组委会获取更多资源。 同时,考虑到学术诚信和版权问题,直接提供往届参赛者的代码可能存在限制,因此需要提醒用户遵守比赛规则,确保代码获取的合法性。建议用户参考官方示例或公开的教程,比如使用预训练模型处理多模态数据,或参考类似项目的开源实现。 此外,用户的问题可能还涉及到如何准备泰迪杯比赛,比如数据处理、模型构建、结果分析等方面,因此可以建议用户学习相关的数据处理库(如Pandas、NumPy)、机器学习框架(如Scikit-learn)、以及深度学习工具,这些都是在泰迪杯比赛中常用的技术。 最后,确保回答结构清晰,分点列出建议,并附上相关问题,帮助用户进一步探索。需要检查是否所有数学公式和代码块都按照系统级指令正确格式化,使用中文回答,并且引用标识正确添加。</think>关于泰迪杯竞赛代码资源的获取途径及建议如下: ### 一、官方渠道资源 1. **竞赛官网** 泰迪杯官网([www.tipdm.org](http://www.tipdm.org))通常会提供往届赛题的完整数据集、评分标准及部分优秀作品的技术报告[^1]。例如2024年B题《基于多模态特征融合的图像文本检索》的`image_data.csv`数据集示例中,图像文件名格式为`Image14001007-4040.jpg`,表明需要处理图像与文本的关联特征。 2. **GitHub代码仓库** 搜索关键词`泰迪杯 site:github.com`可找到开源实现。例如: ```python # 多模态特征融合示例代码片段 import torch from transformers import BertModel, ResNetModel text_encoder = BertModel.from_pretrained('bert-base-uncased') image_encoder = ResNetModel.from_pretrained('microsoft/resnet-50') ``` ### 二、关键技术实现建议 1. **多模态数据处理** 针对图像文本检索任务,典型流程包括: $$ \text{特征提取} \rightarrow \text{特征融合} \rightarrow \text{相似度计算} $$ 建议使用预训练模型如ResNet(图像)和BERT(文本),通过双线性融合层实现跨模态交互。 2. **性能优化方法** - 使用Faiss库加速向量检索 - 采用混合精度训练缩短模型训练时间 ### 三、注意事项 - 直接获取往届完整代码可能违反竞赛规则,建议参考技术思路而非复制代码 - 使用开源代码时需遵守对应许可证(如MIT、Apache 2.0)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值