比赛链接如下:https://www.kaggle.com/competitions/home-credit-default-risk/overview
该比赛是Home Credit公司拿出他们公司的实际问题设置题目,传统的金融机构需要客户有良好且连续的信用卡使用记录才给贷款,Home Credit想用科技的方法解决这个问题,找到那些有实际还款能力但是被传统金融机构拒绝的客户。
本赛题是要预测客户是否会违约,违约的客户会给公司带来实际的经济损失,因为我们要尽量的避免给这部分客户放贷。违约一般分两部分,一个是无还款能力、一个是无还款意愿。当然也有既无还款能力又无还款意愿的人,在这里我们认为无还款能力导致的欠款都是由于无还款能力。
1、数据探查
1.1 application_train/test
训练集30.75万(SK_ID_CURR是主键,其中违约人数是24825,占比8.07%),测试集4.87万,每个训练集&测试集都行都对应一个贷款申请,训练测试的比例是6.31:1。
训练集&测试集的特征及其含义如下:
特征类别 | 特征名 | 特征含义 | 特征类型 |
---|---|---|---|
name_contract_type | 合同类型是现金还是循环贷 | 枚举值 | |
code_gender | 客户性别 | 枚举值 | |
flag_own_car | 客户是否有汽车 | 布尔 | |
flag_own_realty | 客户是否有房产或公寓 | 布尔 | |
cnt_children | 客户的孩子数量 | 数值 | |
amt_income_total | 客户的总收入 | 数值 | |
amt_credit | 客户的贷款信贷额度 | 数值 | |
amt_annuity | 每年要还的贷款额度 | 数值 | |
amt_goods_price | 对于消费贷来说,这个字段是要买的商品价格,从数据看每个贷款都对应某个商品,难道业务全部是消费贷吗 | 数值 | |
name_type_suite | 办理贷款的时候是谁跟着一起来的:孩子、家人、配偶、自己、… | 枚举值 | |
name_income_type | 收入来源:企业家、打工人、政府职员、养老金 | 枚举值 | |
name_education_type | 最高学历 | 枚举值 | |
name_family_status | 家庭状态:已婚、民事婚姻、单身、离婚、丧偶 | 枚举值 | |
name_house_type | 住房状态:租房、和父母住等 | 枚举值 | |
region_population_relative | 数字越大代表客户住的地方人口越密集 | 数值 | |
days_birth | 出生到现在的天数 | 数值 | |
days_employed | 从事当前工作多少天了,365243是异常数据,要剔除 | 数值 | |
days_registration | 多少天之前注册的 | 数值 | |
days_id_publish | 多少天之前修改了身份文件 | 数值 | |
own_car_age | 开的汽车的车龄 | 数值 | |
flag_mobil | 是否提供手机号,训练集中只有1个没提供 | 布尔 | |
flag_emp_phone | 是否提供工作电话,25万人提供了 | 布尔 | |
flag_work_phone | 是否提供家庭电话,6万人提供 | 布尔 | |
flag_cont_mobile | 电话能不能打通,574个人打不通 | 布尔 | |
flag_phone | 是否提供家庭电话,8万人提供 | 布尔 | |
flag_email | 是否提供email,1.7万提供 | 布尔 | |
occupation_type | 职业类型 | 枚举值 | |
cnt_fam_members | 家庭成员数量 | 数值 | |
REGION_RATING_CLIENT/_W_CITY | 居住区域的等级 | 顺序枚举值 | |
WEEKDAY_APPR_PROCESS_START | 周几申请的贷款,一般工作日多 | 枚举值 | |
hours_appr_process_start | 几点申请的贷款 | 24小时 | |
REG_REGION_NOT_LIVE_REGION | 区域地址、城市地址的一系列验证,1是不一致、0是一致 | 布尔 | |
orgnization_type | 工作企业类型:相当于行业:广告、农业、工业、军队等 | 枚举值 | |
ext_source_1/2/3 | 外部数据打分 | 数值 | |
APARTMENTS_AVG/FLOORSMAX_MODE,一共47个特征 | 是一系列描述客户家房子的数据,有均值、众数、中位数 | 数值 | |
obs_30_cnt_social_circle、共4个特征 | 客户的社会关系中有多少30天/60天逾期 | 数值 | |
days_last_phone_change | 申请贷款前的多少天换了手机 | 数值 | |
flag_document_2-21,共20个特征 | 是否提供文件XX | 布尔 | |
AMT_REQ_CREDIT_BUREAU_HOUR,共计6个特征 | 申请贷款前1小时/天/周/月/季度/年查询了多少次征信 | 数值 |
1.2 bureau
征信机构合计有171万数据(SK_ID_BUREAU是主键),对应30.58万贷款ID(其中26.35万是训练集,4.23万是测试集,比值是6.23:1,和之前的训练测试之比大致相当)。
征信机构特征如下:
特征类别 | 特征名 | 特征含义 | 特征类型 |
---|---|---|---|
credit_status | Active:630607、Bad debt:21、Closed:1079273、Sold:6527 | 枚举值 | |
CREDIT_CURRENCY | 信用货币类型,currency1-4,共四个特征 | 枚举值 | |
days_credit | 客户在申请日前多少天申请的征信机构信用 | 枚举值 | |
credit_day_overdue | 申请贷款时客户的逾期天数 | 数值 | |
days_credit_enddate | 客户的在征信机构还有多少天的信用时间 | 数值 | |
days_enddate_fact | 客户在征信机构关闭了多久的信用 | 数值 | |
amt_credit_max_overdue | 客户到目前为止的最大逾期额度 | 数值 | |
cnt_credit_prolong | 在征信机构有几次延期 | 数值 | |
amt_credit_sum | 客户当前在信用机构的信用额度 | 数值 | |
amt_credit_sum_debt | 客户在信用机构的当前债务 | 数值 | |
amt_credit_sum_limit | 信用卡的信用限额 | 数值 | |
amt_credit_sum_overdue | 客户在信用机构的违约之和 | 数值 | |
credit_type | 信用机构的信用类型,车贷、房贷、信用卡、经营贷等 | 枚举值 | |
days_credit_update | 信用机构的最近一次信息更新是多少天前 | 数值 | |
amt_annuity | 信用年金 | 数值 |
1.3 bureau_balance
征信机构的账单信息表共有2729万条数据,对应81万SK_ID_BUREAU,占全部征信记录171万的47%(主键为SK_ID_BUREAU和MONTHS_BALANCE)。该表的唯一可用字段是STATUS,C代表closed、X是未知、0是无逾期、1是逾期在1-30天、2是逾期31-60天、3是逾期61-90天、4是逾期91-120天、5是逾期120天以上。
1.4 previous_application
该表是客户在申请这次贷款之前的申请记录,共计167万条(主键是SK_ID_PREV),对应33万SK_ID_CURR,可见当前训练和测试集中只有2万没有之前的贷款申请记录。
特征类别 | 特征名 | 特征含义 | 特征类型 |
---|---|---|---|
name_contract_type | 贷款合同类型,相比1.1多了消费贷和XNA | 枚举值 | |
amt_annuity | 同1.1 | 数值 | |
amt_application | 之前的贷款申请了多少钱数值 | 数值 | |
amt_credit | 这个和申请不一样,这个额度是实际批下来的金额 | 数值 | |
amt_down_payment | 之前贷款的首付款 | 数值 | |
amt_goods_price | 同1.1 | 数值 | |
weekday_appr_process_start | 同1.1 | 日期 | |
hour_appr_process_start | 同1.1 | 日期 | |
flag_last_appl_per_contract | 有时一个合同会被错误的提交多次申请,这个字段用来标志是不是一个贷款的最后一次申请 | 布尔 | |
nflag_last_appl_in_day | 是不是当天的最后一次申请 | 布尔 | |
nflag_micro_cash | 是不是小微金融贷 | 布尔 | |
rate_down_payment | 归一化的贷款首付比例 | 数值 | |
rate_interest_primary | 主要贷款利息的归一化值 | 数值 | |
rate_interest_privileged | 优惠贷款利息的归一化值 | 数值 | |
name_cash_loan_purpose | 贷款用途 | 枚举值 | |
name_contract_type | 贷款合同类型,approved、cancel等 | 枚举值 | |
days_decision | 相对于当前贷款,上一次申请的决定是什么时候做的 | 数值 | |
name_payment_type | 客户选择上一次贷款的付款方式,现金、电子支付、XNA | 枚举值 | |
code_reject_reason | 被拒原因,XAP、HC、LIMIT | 枚举值 | |
name_type_suite | 办贷款时是和谁一起来的 | 枚举值 | |
name_client_type | 客户是新客还是老客 | 二分类枚举值 | |
name_goods_category | 贷款是为了买什么类型的东西 | 枚举值 | |
name_portfolio | pos、cash、cards、xna | 枚举值 | |
NAME_PRODUCT_TYPE | x-sell、walk-in、xna | 枚举值 | |
channel_type | 获客渠道,country wide、contact center、stone、AP+(cash loan) | 枚举值 | |
sellerplace_area | 销售区域的面积 | 数值 | |
name_seller_industry | 卖家(应该是客户要买商品的卖家)的行业,消费电子、衣服、工业等 | 枚举值 | |
cnt_payment | 之前贷款分为多少期还款 | 数值 | |
name_yield_group | 贷款利息,small、medium、high | 枚举值 | |
product_combination | 产品组合、 PRODUCT_COMBINATION、Cash X-Sell: low、Cash、POS household with interest | 枚举值 | |
days_first_drawing | 相对于当前申请日期,上一次贷款的首次发放时间 | 数值 | |
days_first_due | 相对于当前申请日期,上一次贷款的首次逾期时间 | 数值 | |
days_last_due | 最近一次逾期 | 数值 | |
days_last_due_1st_version | 和days_last_due的区别?没搞懂 | 数值 | |
nflag_insured_on_approval | 之前的申请有没有要求保险 | 数值 |
好多字段里都有XNA这个枚举值,它是有什么特殊含义吗?
1.5 pos_cash_balance
共计1000万条数据(主键是SK_ID_PREV和月份),对应93万SK_ID_PREV,163万前贷款申请中57%有pos机流水记录。
特征类别 | 特征名 | 特征含义 | 特征类型 |
---|---|---|---|
months_balance | 距今的月份 | 枚举值 | |
cnt_installment | 贷款期数 | 数值 | |
cnt_installment_future | 贷款剩余期数 | 数值 | |
name_contract_status | 合同状态,Active、Signed、Complete | 枚举值 | |
sk_dpd | 当月逾期了多少天 | 数值 | |
sk_dpd_def | 忽略金额比较低的贷款,逾期了多少天 | 数值 |
1.6 credit_card_balance
这个表是信用卡账单表,合计384万条数据(主键是MONTHS_BALANCE和SK_ID_PREV)。
1.7 instalments_payments
分期付款表共计1360万条数据(主键是SK_ID_PREV、分期的第几期、分期版本),对应99万SK_ID_PREV,占全部163万前贷款申请的60%。
特征类别 | 特征名 | 特征含义 | 特征类型 |
---|---|---|---|
name_instalment_version | 分期的版本数(0是信用卡),版本变化贷款还款日历发生了变化 | 枚举值 | |
name_instalment_number | 现在是第多少期分期 | 数值 | |
days_instalment | 相对于当前申请日期,之前的贷款应该在什么时间支付 | 数值 | |
days_entry_payment | 相对于当前申请日期,之前贷款的实际支付时间 | 数值 | |
amt_instalment | 贷款分期的约定付款金额 | 数值 | |
amt_payment | 分期的实际付款金额 | 数值 |