数据来源

https://www.kaggle.com/wendykan/lending-club-loan-data 包含226万个样本,145个字段。

数据处理

library(rio) #导入导出数据的包
loan <- import('loan.csv')
str(loan)

查看并处理缺失值

NAcol <- which(colSums(is.na(loan))>0)  #包含缺失值的特征列序号
library(knitr) #使用其中的kable函数制表
kable(sort(colSums(sapply(loan[NAcol], is.na)),decreasing = T) )#按降序列出特征缺失值数量
特征 缺失数量
id 2260668
member_id 2260668
url 2260668
orig_projected_additional_accrued_interest 2252242
deferral_term 2250055
hardship_amount 2250055
hardship_length 2250055
hardship_dpd 2250055
hardship_payoff_balance_amount 2250055
hardship_last_payment_amount 2250055
settlement_amount 2227612
settlement_percentage 2227612
settlement_term 2227612
sec_app_mths_since_last_major_derog 2224726
sec_app_revol_util 2154484
revol_bal_joint 2152648
sec_app_inq_last_6mths 2152647
sec_app_mort_acc 2152647
sec_app_open_acc 2152647
sec_app_open_act_il 2152647
sec_app_num_rev_accts 2152647
sec_app_chargeoff_within_12_mths 2152647
sec_app_collections_12_mths_ex_med 2152647
dti_joint 2139962
annual_inc_joint 2139958
mths_since_last_record 1901512
mths_since_recent_bc_dlq 1740967
mths_since_last_major_derog 1679893
mths_since_recent_revol_delinq 1520309
mths_since_last_delinq 1158502
il_util 1068850
mths_since_rcnt_il 909924
all_util 866348
open_acc_6m 866130
total_cu_tl 866130
inq_last_12m 866130
open_act_il 866129
open_il_12m 866129
open_il_24m 866129
total_bal_il 866129
open_rv_12m 866129
open_rv_24m 866129
max_bal_bc 866129
inq_fi 866129
mths_since_recent_inq 295435
num_tl_120dpd_2m 153657
mo_sin_old_il_acct 139071
bc_util 76071
percent_bc_gt_75 75379
bc_open_to_buy 74935
mths_since_recent_bc 73412
pct_tl_nvr_dlq 70431
avg_cur_bal 70346
mo_sin_old_rev_tl_op 70277
mo_sin_rcnt_rev_tl_op 70277
num_rev_accts 70277
tot_coll_amt 70276
tot_cur_bal 70276
total_rev_hi_lim 70276
mo_sin_rcnt_tl 70276
num_accts_ever_120_pd 70276
num_actv_bc_tl 70276
num_actv_rev_tl 70276
num_bc_tl 70276
num_il_tl 70276
num_op_rev_tl 70276
num_rev_tl_bal_gt_0 70276
num_tl_30dpd 70276
num_tl_90g_dpd_24m 70276
num_tl_op_past_12m 70276
tot_hi_cred_lim 70276
total_il_high_credit_limit 70276
num_bc_sats 58590
num_sats 58590
acc_open_past_24mths 50030
mort_acc 50030
total_bal_ex_mort 50030
total_bc_limit 50030
revol_util 1802
dti 1711
pub_rec_bankruptcies 1365
collections_12_mths_ex_med 145
chargeoff_within_12_mths 145
tax_liens 105
inq_last_6mths 30
delinq_2yrs 29
open_acc 29
pub_rec 29
total_acc 29
acc_now_delinq 29
delinq_amnt 29
emp_title 10
annual_inc 4
title 1

由上表看到,特征的缺失值数量有明显的断层,86W以上的直接删除变量,30W以下的删除掉含有缺失值的样本。

loan<-loan[,which(colSums(is.na(loan))<500000)]
loan <- loan[which(rowSums(is.na(loan))==0),]

还剩下101个变量,一般的评分模型或预测模型最终使用的变量再15~20个左右。那么对结果无影响的变量可以剔除。最终挑选以下变量做分析。

字段 释义
term 还款周期
loan_amnt 贷款金额
int_rate 贷款利率
installment 月还款额
grade 用户等级(影响额度及利率)
emp_length 工作年限
home_ownership 房产状态(包括租赁、抵押、拥有、其他)
annual_inc 年收入(用户提供)
verification_status 年收入是否经过核实
loan_status 贷款状态(需要预测的变量)
addr_state 州(区域特征)
dti 负债收入比((月还款/总负债)/月收入)
delinq_2yrs 两年内逾期30天以上次数
inq_last_6mths 近六个月征信查询次数
open_acc 未结清贷款数量
revol_util 可用贷款使用率
out_prncp 未还本金总额
total_pymnt 已还金额
total_rec_int 已还利息(包含在已还金额中)
acc_now_delinq 有欠款的账户数
tot_coll_amt 欠款总额
tot_cur_bal 所有账户总欠款额
acc_open_past_24mths 24个月内申请量
mo_sin_old_il_acct 第一次申请距今时间(月)
mo_sin_rcnt_tl 最后一次申请距今时间(月)
mths_since_recent_inq 最近一次征信查询(月)
mort_acc 抵押账户数量
num_actv_bc_tl 有效银行卡数量
num_actv_rev_tl 活跃的循环交易次数
num_tl_op_past_12m 过去12个月开设的账户数
pct_tl_nvr_dlq 无拖欠行为交易占比
tot_hi_cred_lim 最高额度
debt_settlement_flag 是否与债务清算公司合作

生成新的数据集

loan <- loan[,c("term","loan_amnt","int_rate","installment","grade","emp_length","home_ownership","annual_inc","verification_status","loan_status","addr_state","dti","delinq_2yrs","inq_last_6mths","open_acc","revol_util","out_prncp","total_pymnt","total_rec_int","acc_now_delinq","tot_coll_amt","tot_cur_bal","acc_open_past_24mths","mo_sin_old_il_acct","mo_sin_rcnt_tl","mths_since_recent_inq","mort_acc","num_actv_bc_tl","num_actv_rev_tl","num_tl_op_past_12m","pct_tl_nvr_dlq","tot_hi_cred_lim","debt_settlement_flag")]
strt(loan)

特征工程

1,term和emp_length的值都是字符串,提取其中的数字,并转换为因子变量
emp_length值为n/a的按0处理,<1 year 按照1 year处理,10+years按照10years处理。

library(stringr) #数据处理
library(ggplot2) #绘图
loan$term <- as.factor(str_extract(loan$term,'\\d+')) #提取term字符串中的数字
loan$emp_length[loan$emp_length == 'n/a' ] <- 0
loan$emp_length <- as.factor(str_extract(loan$emp_length,'\\d+'))

2,

library(plyr)
loan$grade <- mapvalues(loan$grade,c('A','B','C','D','E','F','G'),c('1','2','3','4','5','6','7'))
loan$grade <- as.factor(loan$grade)

Lending Club信贷违约风险分析(R语言)相关推荐

  1. Lending Club贷款违约预测

    目录 项目简介及目标 数据概览 2.1数据来源 2.2数据结构图 2.3数据变量表 2.4离散型数据分布 2.5连续型数据分布 数据处理及特征选择 3.1目标值量化 3.2删除字段 3.3缺失值处理 ...

  2. R语言基于决策树的银行信贷风险预警模型

     引言 我国经济高速发展,个人信贷业务也随着快速发展,而个人信贷业务对提高内需,促进消费也有拉动作用.有正必有反,在个人信贷业务规模不断扩大的同时,信贷的违约等风险问题也日益突出,一定程度上制约着我国 ...

  3. R语言用CPV模型的房地产信贷信用风险的度量和预测

    全文链接:http://tecdat.cn/?p=30401 本文基于 CPV 模型, 对房地产信贷风险进行了度量与预测.我们被客户要求撰写关于CPV模型的研究报告(点击文末"阅读原文&qu ...

  4. R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression)

    R语言使用cmprsk包的crr函数进行生存资料的多因素竞争风险分析(Competing Risks Regression) 目录

  5. 分类树/装袋法/随机森林算法的R语言实现

    原文首发于简书于[2018.06.12] 本文是我自己动手用R语言写的实现分类树的代码,以及在此基础上写的袋装法(bagging)和随机森林(random forest)的算法实现.全文的结构是: 分 ...

  6. R语言 RevoScaleR的大规模数据集决策树模型应用案例

    RevoScaleR中的rxDTree函数使用基于分类的递归分区算法来拟合基于树的模型得到的模型类似于推荐的ř包rpart包产生的模型支持分类型树和回归型树.; 与rpart包一样,差异由响应变量的性 ...

  7. 基于Python对Lending Club信贷业务数的分析

    项目背景 作为旧金山的一家个人对个人的借贷公司,Lending Club成立于2006年.他们是第一家注册为按照美国证券交易委员会SEC(Securities and Exchange Commiss ...

  8. Lending Club贷款数据分析

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  9. R语言CART决策树、随机森林、chaid树预测母婴电商平台用户寿命、流失可视化

    全文链接:http://tecdat.cn/?p=31644 借着二胎政策的开放与家庭消费升级的东风,母婴市场迎来了生机盎然的春天,尤其是母婴电商行业,近年来发展迅猛(点击文末"阅读原文&q ...

最新文章

  1. 5个最佳的Android测试框架
  2. 查看linux上面是否有安装redis,redis启动
  3. markdown常用操作(特殊字符显示、换行、字体颜色和大小、图片位置和大小)
  4. HDU - 5686-Problem B (递推+高精)
  5. pt939g联通_尝试修改友华PT939G的省份设置,成功!
  6. 实战课堂:为什么更换存储之后一切正常但RAC集群启动不了?
  7. 20220213:力扣第280场周赛(上)
  8. thinkphp3.2独立分组的建立
  9. 普及一下行业尖端知识——腾讯自研分布式数据库TBase
  10. 华为机试(C++)真题Od
  11. 锐龙cpu能装linux吗,AMD CPU怎么安装?AMD锐龙处理器与主板安装图解教程
  12. 月星当空,月光洒落树梢透进窗户,白的苦楚,寥寂随之上心头
  13. Blender插件开发:用fake-bpy-module提供代码补全
  14. MATLAB实现控制系统的根轨迹分析
  15. 3-python 函数篇
  16. java 将.amr音频文件转换为.mp3或.wav文件
  17. pip 因为网络问题而导致安装库失败
  18. vue element el-date-picker绑定对象 v-model=‘xx.xx‘清空后数据还是显示
  19. 51Nod 1631 小鲨鱼在51Nod小学 【 扫描线 】
  20. 论文阅读:Pixel-level Extrinsic Self Calibration of High Resolution LiDAR and Camera

热门文章

  1. 批发进销存软件哪个好用?求测评
  2. Canvas3——绘制渐变图形与绘制变形图形
  3. 威纶通触摸屏可以解密吗_不会游泳可以潜水吗?!体验深潜要注意什么?带你解密DSD...
  4. 颓废的人怎样振奋精神_5个令人振奋的行业,从事数据科学家在科技行业以外的工作...
  5. 谷歌搜索 的几种方法
  6. 中学-知识与能力【6】
  7. PhotoShop 切片、标尺使用
  8. 物理世界的鲁棒语音对抗样本(源码阅读笔记)下
  9. 套汇算法c语言,在金字塔下实现套利策略的测评
  10. 2021届秋招腾讯前端一面面经