租赁风控模型之决策树
租赁风控模型之决策树
- 1. 数据预处理
- 2. 业务分析
- a. 租赁业务分析
- i. 订单月份交易量与商品押金变化走势
- b. 商品押金与期数天数分布
- i. 商品押金分布
- c. 逾期状态分布
- i. 每月好坏用户分布情况
- 3. 用户画像分析
- 4. 多维变量分析
- a. 性别与是否预期相关
- b. 年龄分布与是否预期相关
- c. 芝麻分与是否预期相关
- d. 百融_信息合并与是否预期相关
- 5. 特征工程
- a. 提取特征和目标变量
- b. 特征编码
- c. 特征选择
- d. 特征训练
- 6. 决策树
- a. 决策树模型
- b. 验证模型
- c. 绘制Roc曲线,计算AUC值
- d. 混淆矩阵可视化
- 7. 总结
前言:基于(手机类目风控因子表),对用户租赁数据进行业务分析、用户画像、多维变量和相关性分析。数据分析的最终目的是赋能于业务,在租赁场景中最直接的体现是:通过数据判断,用户中哪些是good用户,哪些是bad用户,他们都有什么共性和异性。通过决策树建模分析后,如果新用户租赁时,根据授权填写的各项信息,进行判断该用户是good用户还是bad用户,应不应该给予租赁。
1. 数据预处理
对数据进行常规的处理,包括:导入数据分析相关的包、可视化包、防止出现中文乱码、备份原有warnings过滤器、读取文件、查看缺失率大于10%的列、删除字段、字段重命名忽略、缺失值处理以及对数据字段进行编码等。
因为这里利用决策树,在此租赁场景设定只有“可租赁”和“不可租赁”两个选择,结果为二分类。目标变量为“是否m21”(是否逾期/是否租赁),对其进行编码:定义pass(可租赁/不逾期)为0,reject(不可租赁/逾期)为1。
2. 业务分析
a. 租赁业务分析
i. 订单月份交易量与商品押金变化走势
- 从图中看出,交易量和商品押金成正相关,商品押金随交易量的变化而变化。
b. 商品押金与期数天数分布
i. 商品押金分布
- 从图中看出,商品押金范围多集中在400-800元,中位数在600左右。
c. 逾期状态分布
i. 每月好坏用户分布情况
- 从饼形图中看出,good用户占比92.45%,风控把握做的相对较好。
- 从柱状图中看出,2021年末2个月bad客户占比较多,2022年前三个月相对较少,存在风险模型优化的可能。
3. 用户画像分析
- 结合手机风控各因子类目表的数据表现情况来看 ,用户画像分析可以从:年龄、性别、芝麻分、百融_信息合并、历史是否有释放押金转租金行为、否命中诈骗地址、代扣失败次数是否大于10、收货地址、收入等因素进行分析。
4. 多维变量分析
a. 性别与是否预期相关
- 从柱状图性别与是否预期占比来看,男性这部分的bad用户最多,基数也是最大的。
b. 年龄分布与是否预期相关
- 从密度图中看出,是否逾期与年龄区分度较小。
c. 芝麻分与是否预期相关
- 从柱状图逾期状态分别在芝麻分占比看出,信用评级筛选过后的客户中,逾期的表现与其评级基本保持一致。
d. 百融_信息合并与是否预期相关
- 从柱状图中看出,非百融_信息合并的这部分bad用户最多,基数也是最大。
类似的因子还有:历史是否有释放押金转租金行为、是否命中诈骗地址、是否锁机
5. 特征工程
a. 提取特征和目标变量
- 这里目标变量是:是否m21
0:good用户 1:bad用户
b. 特征编码
- Python下做决策树的时候,每一个特征都应该是数值(int或float)类型的。这里利用LabelEncoder对类型特征进行编码。
c. 特征选择
特征较多时,我们初步聚焦几个重要特征展开分析,这就涉及到特征选择的问题。
《机器学习》将特征选择分为了三种方法:分别是过滤式(filter) 、包裹式(wrapper)和嵌入式(embedded)。
● 过滤式(filter): 通过自变量之间或自变量与目标变量之间的关联关系选择特征。
● 包裹式(wrapper): 通过目标函数(AUC/MSE)来决定是否加入一个变量。
● 嵌入式(embedded): 通过学习器自身自动选择特征。
这里只选择其中一种方法进行选择,这里采用的是Wrapper。
- 通过递归特征消除方法筛选出10个与目标变量相关性较强的特征,剔除相关性差的特征,达到降维效果。
为了更加直观的查看,可以通过热力图进行展示。
d. 特征训练
- 为了使模型更加可信,把数据随机拆分成训练集和测试集。(7/3)
y_train,y_test的逗号后面没有数字,就表示只有1列。
6. 决策树
a. 决策树模型
- 决策树由结点和有向边组成。结点有两种类型:内部结点和叶结点,其中内部结点表示一个特征或属性,叶结点表示一个类。一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点。叶结点对应于决策结果,其他每个结点则对应于一个属性测试。
最终生成的决策树如下:
背景色中橘红色代表“可租赁”,蓝色代表“不可租赁” - 决策树已生成,可以直观的看到什么条件下“可租赁”,什么条件下“不可租赁”。gini指数在决策树中来衡量样本数据的不确定性,gini(熵)越大,样本的不确定性就越大。
b. 验证模型
- 检验模型效果好坏的标准是实践。决策树模型已经建好了,我们随机从测试集中抽取数据进行验证。
- 抽取测试集中第一行数据利用决策树进行预测,返回值为0,0代表“可租赁/不逾期”,经查看预测值和实际值一致。同样的方式抽取最后一行数据进行验证:
但这种验证方法,只能代表个案,想要看到的是总体准确率。
预测数据集,返回的值为0.9221279326820224
c. 绘制Roc曲线,计算AUC值
从ROC曲线可以观察到训练数据和测试数据曲线重合度较高,拟合较好。
d. 混淆矩阵可视化
- 模型的表现虽然很好,但从混淆矩阵来看,其实际表现并非想象中的完美,需要对其重新进行评估与优化。
7. 总结
92%的准确率相当高。但样本量相对比较小,不能代表整体,且一个好的模型需要大量数据做支撑。而这个决策树模型也比较简陋,中间省去了很多调优细节。在实际工作场景中也不是“非黑即白”的关系,还有好多处于中间区域的用户,这要综合评估风险和收益,找到两者之间的平衡点。
下期我们来讲讲:《决策树模型优化策略》,关注我,不迷路。
租赁风控模型之决策树相关推荐
- 风控模型师面试准备--技术篇(逻辑回归、决策树、集成学习)
原文地址:https://zhuanlan.zhihu.com/p/56175215 编辑于2019-02-12,持续更新中,有风控建模工作经验的,或者想转行风控建模的小伙伴可以互相交流下... 一. ...
- Python银行风控模型的建立 SVM 决策树 神经网络 三种模型比较
一.首先要感谢原作者的无私分享 原文网页链接: Python银行风控模型的建立_DG息的博客-CSDN博客_银行风控模型 首先感谢"Python银行风控模型的建立"()这位老师,他 ...
- 如何浅显得理解风控模型中的特征筛选|附实操细节(全)
今天我们综合了星球同学的一些需求,给大家梳理了这样一篇风控建模中特征筛选,希望对所有的风控人员在模型开发上都有所启发. 本文,我们会跟大家介绍特征选择的内容,包括其中的重点问题跟注意的细节. 因为完整 ...
- 手把手系列—风控模型的调参方法和实际应用
序言: 大数据时代的风控体系必有模型部分的参与,用策略贯穿整个风控体系,以数据为驱动,模型一定是标配内容.于是在模型的建设上,如何精细化地输出一套有效的模型,就是在精细化管理上非常重要的一个差异点.不 ...
- 小微风控模型汇总与企业征信报告指南
番茄风控文章上关于小微风控模型内容,之前相关的有: 不能不知-小微最常见的两大场景模型- 当时谈到了小微风控的两类模型:营收预估模型与逾期预测模型,今天的内容会在这个基础上再介绍另外两大类模型,即欺诈 ...
- 风控模型师面试准备--技术篇
转载:https://zhuanlan.zhihu.com/p/56175215 一.算法 逻辑回归 决策树 集成学习(随机森林,Adaboost,GBDT,XGBOOST,LightGbm) 二.特 ...
- 如何“谨慎”使用“数据驱动”的风控模型(二)——决策篇
上一篇,笔者介绍了谨慎使用"数据驱动"的风控模型,需要"高质量的数据 + 审慎严谨的决策模型 + 实时全面的监控分析"动态闭环.本篇笔者会着力于介绍整个风控决策 ...
- 金融风控模型开发SOP(标准操作流程)-收藏
平衡各方利益的模型才是最好模型 -Toby!2022 07 07 各位朋友大家好,我是Toby老师.之前有很多风控朋友咨询如何搭建风控模型.今天我抛砖引玉为大家讲述金融风控模型开发SOP(标准操作流程 ...
- 一文看懂风控模型所有
[与数据同行]已开通综合.数据仓库.数据分析.产品经理.数据治理及机器学习六大专业群,加微信号frank61822702 为好友后入群.新开招聘交流群,请关注[与数据同行]公众号,后台回复" ...
- Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付
全文链接:http://tecdat.cn/?p=26184 在此数据集中,我们必须预测信贷的违约支付,并找出哪些变量是违约支付的最强预测因子?以及不同人口统计学变量的类别,拖欠还款的概率如何变化?( ...
最新文章
- 内存Cookie和硬盘Cookie
- 设计模式 (3) : 单例模式的几种方法
- setsockopt()函数 参数详解
- c++ 多个线程操作socket要同步吗_基础知识深化:NIO优化原理和Tomcat线程模型
- mysql数据库集群备份策略_mysql高可用方案之集群(cluster)
- python抓取html中特定的数据库,Python抓取网页中内容,正则分析后存入mysql数据库...
- 关于离散数学的一点事情
- matlab 做中值滤波时K = filter2(fspecial('average',3),J)/255,为什么要除以255
- 摄像头(WebCam)在Linux操作系统中的驱动方法
- unix操作系统图标大全
- java希腊字母表怎么打印_java 命令行窗口输出希腊字母表
- 格式化输出latex数字罗马字体
- Kotlin协成的简单理解
- 7个向上管理技巧,让你的职场一路开挂
- 一个节拍都不错过——dfuse 2019年第三季度回顾
- 按照C++语言程序结构组成数字电路进行计算的计算机
- windows的由来与详细介绍
- SPSS多元线性回归
- 题解:女神间的 BOYI # 博弈论 # surreal number
- html中如何把一个div放到页面底部,html – 如何将DIV锚定到页面的底部?