目录:

1 项目背景和问题框架

2 客户还款模型搭建

2.1 数据介绍和特征体系

2.2 机器学习建模和模型评估

3 模型的应用

4 效果评估

1,项目项目背景和问题框架

还款提醒:在信贷场景中,金融机构给客户发放贷款后,在客户账单日前(一般是还钱前7天或5天)会通过短信、微信公众号信息、IVR或语音机器人等 方式进行一次或多次提醒,以告知客户还款时间、还款金额、还款账号等信息。适当的还款提醒有利于敦促客户及时还款,维护良好信用记录,同时也能降低机构账款逾期率,减轻催收成本。但过度的还款提醒,则容易引起客户反感甚至投诉,严重影响客户体验。因此,还款提醒需要寻求提醒效果(降低流入率)和客户体验(大部分客户不会逾期)之间的平衡

当前公司面临的问题:

  • 一方面,流入率长期在两位数的高位,需要加强提醒频次和强度,减轻贷后催收压力;

  • 另一方面,不断有客户反馈自己不会逾期但也频繁收到提醒信息,感觉自己被“催收”了。部分投诉至业务部门或渠道(公司线上线下、C端和小B业务都有),需降低提醒频次和强度,以提升客户体验

现状和解决方案:

公司目前采用相同的提醒频次和强度对所有客户无差别的提醒,现需要对还款客户进行分群,以区分“大概率会逾期”的客户进行重点提醒,降低流入率;“大概率不会逾期”的客户降低提醒频次,提升客户体验

2 客户还款模型搭建

2.1样本定义

数据观察点:还款前7天-0天客户(包含回流客户)

观察期:还款前7天-0天,如客户在此期间还款,则为好样本,如客户D0未还款流入M1,则为坏样本

2.2数据介绍和特征体系

(此处省略取数的大几段SQL和数据清洗过程中的10086个吐槽。。。)

数据集介绍:初始数据集:10154*18,经过特征工程如空缺值处理、卡方、IV、VIF、树模型等,剩余8623*12。由于数据为公司某一产品的真实生产数据,模型部亦部署上线,为避免信息泄露,在展示时对数据进行了脱敏处理。

数据特征集如下:

当产品跨度较大时,需要按产品分别建模。不同产品特征选用会有差异。

2.3 机器学习建模和模型评估

主要使用随机森林、逻辑回归进行建模。

#数据划分
train = df_d.iloc[:,df_d.columns != "是否流入"]
lab = df_d.iloc[:,df_d.columns == "是否流入"]xtrain,xtest,ytrain,ytest=train_test_split(train,lab,test_size=0.4,random_state=100)
for i in [xtrain,xtest,ytrain,ytest]:i.index = range(i.shape[0])

随机森林建模:

rdf = RandomForestClassifier(max_depth= 3# ,criterion= "entropy",n_estimators=100)
rdf.fit(xtrain,ytrain)rdf.score(xtrain,ytrain),  rdf.score(xtest,ytest),   cross_val_score(rdf,train,lab,cv=5).mean()#输出:(0.8476705973323023, 0.8515942028985507, 0.8117818353004471)

网格搜索后可进一步优化参数。

查看特征重要性:

pd.DataFrame([xtrain.columns,rdf.feature_importances_]).T

特征重要性分布:

cutoff=0.5(系统默认)下, 查看混淆矩阵、ks、roc_auc、召回率

y_pred = rdf.predict(xtest)
cnf_matrix = confusion_matrix(ytest, y_pred)
recall_value = recall_score(ytest, y_pred)
precision_value = precision_score(ytest, y_pred)
acc = accuracy_score(ytest, y_pred)
cnf_matrix,     recall_value,       precision_value,       acc
#输出:(array([[2680,   88],[ 437,  245]], dtype=int64),0.3592375366568915,0.7357357357357357,0.8478260869565217)y_score_test = rdf.predict_proba(xtest)[:, 1]
fpr, tpr, thresholds = roc_curve(ytest, y_score_test)
roc_auc = auc(fpr, tpr)
ks = max(tpr - fpr)
ar = 2*roc_auc-1
ks,ar
#输出:(0.5277893139864052, 0.6120090519214143)roc_auc_score(ytest,rdf.predict(xtest))
@输出:0.6786035899858797

逻辑回归建模:

sta = StandardScaler()
sta =sta.fit(train)
train_sta = sta.transform(train)
xtrain_sta = sta.transform(xtrain)
xtest_sta  = sta.transform(xtest)lr = LogisticRegression( C= 1,penalty = 'l2',# solver = 'sag',class_weight ={0:1,1:3})
lr = lr.fit(xtrain_sta,ytrain)
lr.score(xtrain_sta,ytrain), cross_val_score(lr,train_sta,lab,cv=4).mean()#输出:(0.8327856176300019, 0.8076076475728448)

模型评估:

roc_auc_score(ytest,lr.predict(xtest_sta)),
#输出:0.7348038114691573,y_pred = lr.predict(xtest_sta)
cnf_matrix = confusion_matrix(ytest, y_pred)
recall_value = recall_score(ytest, y_pred)
precision_value = precision_score(ytest, y_pred)
acc = accuracy_score(ytest, y_pred)
cnf_matrix,     recall_value,       precision_value,       acc
#输出:(array([[2485,  283],[ 292,  390]], dtype=int64),0.5718475073313783,0.5794947994056464,0.8333333333333334)#y_score_test = lr.predict_proba(xtest_sta)[:, 1]
fpr, tpr, thresholds = roc_curve(ytest, y_score_test)
roc_auc = auc(fpr, tpr)
ks = max(tpr - fpr)
ar = 2*roc_auc-1
ks,ar
#输出(0.5168452189242791, 0.6334867060498706)

查看predict_proba下预测结果分布:

a = pd.DataFrame(lr.predict_proba(xtest_sta))
b = pd.DataFrame(lr.predict(xtest_sta),columns=['预测值'])
c = pd.DataFrame(ytest)
df_rsi = pd.concat([c,b,a],axis=1)
df_rsi.columns = ["是否流入","预测值","0的概率","1的概率"]
df_rsidf_rsi["流入概率分箱"] = pd.cut(df_rsi["1的概率"], bins=[0,0.12,0.25,0.36,0.48,0.6,0.72,1], right=False,labels=[1, 2, 3, 4, 5,6,7])
df_rsipt = pd.pivot_table(df_rsi,index=['流入概率分箱'],fill_value=0,columns=['是否流入'],values=['预测值'],aggfunc=[len],margins=True)
pd.DataFrame(pt)w = pd.DataFrame(pt)
w.columns = ["zero","one","all"]
w["流入百分比"]= w["one"]/ w["all"]print(w)

输出:

如上图:只需要对流入概率分箱中3-7约50%的客户进行还款提醒,即可覆盖85%的流入客户。对数据集中分类变量进行独热编码后,模型效果提升不大,此处不再展示

上线模型选择:

综合考虑:

  • 模型指标和性能

  • 业务实际情况

最终选用逻辑回归模型进行上线部署

3 模型的应用

模型非常简单。部署上线后,在客户还款前七天开始跑数据,得到每个还款客户的predict_proba(流入概率),并同时输出权重得分最高的三个指标(在模型上线后优化)。不同产品策略略有差异,还款提醒策略如下:

4 效果评估

ABtest的2个月,客户还款前咨诉率下降55%,有抵押产品流入率下降18%(线下信用贷下降15%,线上产品下降11%),还款提醒成本下降22%。在客户咨诉时,可以看到影响客户流入概率的权重最高的3个指标,因此在客服处理时,亦有针对性的应对话术。项目开始设想的是模型主要运用于风险贷后,但没想客服用起来也很爽,此乃意外之喜

模型已运行一年半有余,期间迭代2次,当前运行平稳

做过的,简单且效果很好的模型项目之一

客户贷后还款提醒优化项目相关推荐

  1. 贷后还款日算法-excel公式

    2018年9月时,跟同事要了风控系统中还款日的算法,自己用excel公式写出了计算每期还款日的函数. 下图是还款日算法.还款日为 :合同日期-1天+(自然月*当期其次). 当合同日为每月第一天.最后第 ...

  2. 年终总结系列3|信贷风控的贷后分析报告总结

    序言: 信贷用户的贷后表现是信贷产品体系一项非常重要的模块,贷后数据与贷前数据的指标分析,不仅可以直接反映出产品的整体收益情况,而且是很多数据挖掘与模型开发等工作任务的前提条件.现以某公司线上小额信贷 ...

  3. 【项目实战】基于python的 p2p 贷后指标全自动日报制作

    需要数据分析.风控评分卡等相关数据.代码,请添加qq群:102755159,或留言联系笔者邮件发送!!! 如果对金融风控.机器学习.数据科学.大数据分析等感兴趣的小伙伴,可加微信交流(邮件中备注,我会 ...

  4. 现金贷、信用贷、消费贷小贷系统后台、现金贷、消费贷、信用贷、助学贷、旅游贷、装修贷、准入授信 、贷款申请、产品授信、合同管理、放款审批、放款登记、还款管理、贷后检查、贷后预警、贷款结项、Axure原型

    现金贷.信用贷.消费贷小贷系统后台.现金贷.消费贷.信用贷.助学贷.旅游贷.装修贷.准入授信 .贷款申请.产品授信.合同管理.放款审批.放款登记.还款管理.贷后检查.贷后预警.贷款结项. Axure原 ...

  5. 现金贷、信用贷、消费贷小贷系统后台、消费贷、助学贷、旅游贷、装修贷、准入授信 、贷款申请、产品授信、合同管理、放款审批、放款登记、还款管理、贷后检查、贷后预警、贷款结项、催收、逾期、还款、放款台账

    现金贷.信用贷.消费贷小贷系统后台.现金贷.消费贷.信用贷.助学贷.旅游贷.装修贷.准入授信 .贷款申请.产品授信.合同管理.放款审批.放款登记.还款管理.贷后检查.贷后预警.贷款结项.催收.逾期 A ...

  6. 贷后风控中逾期案件差异化的分配逻辑

    在风控精细化运营的当下,贷后工作的开展,越来越需要精细化管理. 今天我们总结梳理了番茄风控之前的内容并结合近期开展的内容,为大家带来一个催收模型优化和逾期案件催收差异化策略的内容,详细请看本文介绍. ...

  7. 贷后联动管控指标与差异化案件的分配逻辑

    在风控精细化运营的当下,贷后工作的开展,越来越需要精细化管理.如何做好相关的精细化管理工作,首先我们从这些贷后相关的名词如下开始熟悉: 贷后基本催收名词解释 Flow Rate 迁移率就是在贷后资产评 ...

  8. 贷后催收中的风险联动管控指标

    在番茄风控大数据之前的文章中,之前跟大家介绍过催收相关内容:催收小词典,助你轻松讨回债务. 今天文章会再跟大家介绍在这些催收指标中,哪些指标是可以反馈到贷前贷中风控环节的.在策略整体优化流程而言,数据 ...

  9. 风控人必须知道的贷后专业术语和指标

    很多人普遍认为贷后管理等同于打电话做催收,其实不然.单从催收手段上就可分为:自动代扣.短信提醒.IVR.智能语音.预测式外呼.预览式外呼.上门催收.法务催收.律师函.委外催收.网络仲裁等. 仅以发送短 ...

最新文章

  1. @2021高考生,用 Python 分析专业“钱景”
  2. 天池NLP大赛来了!
  3. 原码、补码、反码详解
  4. MySQL高级in和not in
  5. windows 7(32/64位)GHO安装指南(序篇)~
  6. thinking-in-java(11) 持有对象
  7. IntelliJ IDEA使用教程(很全)
  8. Javascript——进阶(事件、数组操作、字符串操作、定时器)
  9. centos7下安装mysql5.7(rpm)
  10. 【路在前端】我的前端工作流程梳理
  11. 远程重启h3c路由器_H3C路由器简单命令
  12. 示波器X-Y模式显示利萨如(李沙育)与DIY图像
  13. 万字讲解OpenWrt防火墙iptables,并使用UCI配置防火墙
  14. 关于大数据相关的问答汇总,每天持续更新中哦~
  15. 使用Robot Framework实现多平台自动化测试
  16. html链接怎么在别的电脑打开,ppt超链接视频在别的电脑打不开怎么办
  17. 2019人工智能技术发展趋势
  18. TI快充芯片-BQ25890
  19. 1、Python学习笔记第一课:python介绍
  20. 苹果公司战略管理分析

热门文章

  1. 【MySQL存储过程】光标的使用详解
  2. 【干货】java课程实战培训
  3. C++字符串赋值、拼接、查找、替换、存取、插入删除和子串
  4. UE4 如何旋转模型骨骼
  5. opensearch 使用
  6. 用数据说话,Python就业前景分析
  7. 1.自学软件测试之虚拟机安装
  8. Three.js实现的网站页面金字塔模型显示
  9. Impala简介(整理)
  10. 输入某年某月某日,判断这一天是这一年的第几天?(JS实现)