3. 数据获取与探索:以Lending Club为例,理解信贷数据字段和业务含义

做信用评分建模,第一步是啥?不是调模型,也不是算WOE。是先把数据搞清楚。说白了,数据都不了解,后面再花哨也是白搭。

我个人非常喜欢用Lending Club的公开数据来做教学案例。为什么?因为它字段够多、样本够大、业务含义够清晰。你想想看,一个数据集里既有借款人的收入、负债,又有贷款金额、利率,还有完整的还款记录——这不就是信用评分建模的天然实验室吗?

3.1 为什么选Lending Club

Lending Club是美国最大的P2P借贷平台之一,从2007年到2020年,他们公开了大量真实的贷款数据。我记得第一次下载这个数据集的时候,打开一看,好家伙,200多万条记录,上百个字段。数据质量也还不错,缺失率比很多金融数据集低得多。

这套数据有几个特点,让它特别适合做信用评分教学:

  • 目标变量明确:loan_status字段直接告诉你这笔贷款是好是坏
  • 字段覆盖全面:从借款人资质到贷款属性,从信用历史到还款行为,都有
  • 样本足够大:几十万到上百万条,做WOE分组统计时不会出现空桶
  • 真实业务场景:不是人工合成的数据,是真实发生的借贷行为

核心观点:数据探索不是随便看看,而是带着业务问题去理解每个字段的"前世今生"。你后面做WOE编码、做特征筛选,本质上都是在跟这些字段打交道。

3.2 数据获取渠道

获取Lending Club数据主要有两个渠道:

  1. Kaggle平台:搜索"Lending Club Loan Data",能找到多个版本。我建议用有loan_status完整标注的那个版本。
  2. Lending Club官方统计页面:他们定期发布历史贷款数据,格式是CSV,直接用pandas就能读。

数据下载下来后,通常是一个CSV文件,几百兆到1个G不等。我建议你用pd.read_csv()配合nrows参数先读一小部分看看结构,别一上来就全量加载——我曾经因为这个把笔记本内存撑爆过,嗯,尴尬。

3.3 核心字段分类与业务含义

Lending Club的字段虽然多,但按业务逻辑可以分成四大类。我在项目中习惯先按这个分类梳理一遍,再看具体字段。

字段分类 字段名 业务含义 数据类型 建模用途
借款人信息 annual_inc 年收入 数值型 还款能力评估
借款人信息 emp_length 工作年限 类别型 收入稳定性
借款人信息 home_ownership 住房拥有状况 类别型 资产稳定性
贷款详情 loan_amnt 贷款金额 数值型 风险敞口
贷款详情 term 贷款期限(36/60月) 类别型 违约时间窗口
贷款详情 int_rate 利率 数值型 风险定价
贷款详情 grade 贷款等级(A~G) 有序类别 信用评级
信用历史 fico_range_low FICO分数下限 数值型 外部征信分
信用历史 dti 债务收入比 数值型 负债压力
信用历史 delinq_2yrs 过去2年逾期次数 数值型 违约历史
还款表现 loan_status 贷款状态(目标变量) 类别型 好坏定义
还款表现 total_pymnt 已还总额 数值型 还款充分性
还款表现 last_pymnt_amnt 最后一笔还款金额 数值型 还款行为模式

小技巧:别急着把所有字段都用上。先挑出跟你业务目标最相关的10~15个字段,深入理解它们的分布和业务含义,远比一股脑把所有字段塞进模型要有效。

这里我要提一下loan_status这个字段——它是我们的目标变量。但要注意,它不是简单的"好"或"坏"。原始数据里这个字段有十几种取值,比如"Fully Paid"、"Charged Off"、"Default"、"Late (31-120 days)"等等。你需要根据自己的业务定义来做好坏样本映射。我在项目中遇到过一个问题:把"Late (31-120 days)"算作好样本还是坏样本?这完全取决于你的建模目标。如果是做申请评分,通常把"逾期90天以上"算作坏样本。

Lending Club 信贷数据字段分类与业务映射 Lending Club 公开数据集 借款人信息 贷款详情 信用历史 还款表现 关键字段 annual_inc emp_length | home_ownership 关键字段 loan_amnt | term int_rate | grade 关键字段 fico_range_low dti | delinq_2yrs ← 上一章 📖 返回目录 下一章 →