初探机器学习与评分卡模型
机器学习简介
什么是机器学习
- 如果一个系统能够通过执行某个过程改变它的性能,这就是学习(什么是学习)
- 不用编程去指定机器做什么,而是让机器有能力自己学习
- 首先定义任务T,经验E,表现P,如果机器有一个任务T,随着经验E的增多,表现P也会变好,则表示机器正在经验E中学习
三要素
- 模型(机器学习的成果,条件概率分布或决策函数)
- 策略(计算模型的方式)
- 算法
生活中的机器学习应用
- 垃圾邮件分类
- AlphaGo围棋AI
- 医疗行业
- 人声识别
监督学习
学习一个模型,使模型对给定输入做出相应的预测输出,流程如下图
其中自变量x为自变量,是实例的特征向量;y为因变量,是实例的结果。
监督学习主要解决分类与回归两类问题
监督学习实例
已知房价,平米数的训练集如下:
平米数 | 房价(万) |
---|---|
50 | 50 |
80 | 70 |
100 | 90 |
130 | 110 |
150 | ??? |
给定一个平米数,预测该面积房价。
无监督学习
从数据中自主学习,分析数据的类别结构
评分卡介绍
什么是评分卡(信贷场景中)
- 以分数的形式来衡量风险几率的一种手段
- 对未来一段时间内违约/逾期/失联概率的预测
- 通常评分越高越安全
- 根据使用场景分为反欺诈评分卡、申请评分卡、行为评分卡、催收评分卡
为什么要开发评分卡
- 风险控制的一个环节,根据已有数据提供逾期概率指标参考
评分卡的特性
- 稳定性
- 预测能力
- 等价于逾期概率
评分卡开发的常用模型
- 逻辑回归
- 决策树
- 组合模型
基于逻辑回归的评分卡理论依据
一个事件发生的几率(Odds),是指该事件发生的概率与该事件不发生概率的比值。若一个客户违约概率为p,则其正常的概率为1-p,由此可得:
Odds = \frac{p}{1-p}
此时,客户违约的概率p可以表示为:
p=\frac{Odds}{1+Odds}
评分卡表达式为:
Score = A-Blog(Odds)
其中A、B为常数。由于log函数在 (0→+∞)(0 \to +\infty)单调递增,所以当用户违约几率Odds越大时,Score评分越低。
通过给定
(1)某特定Odds时的Score值 S0S_0;
(2)该特定Odds值翻倍时Score增加值 PD0 PD_{0};
通过给定值 S0S_0与 PD0PD_{0}带入评分卡表达式,可求得A、B。
通过以上分析,求该用户评分Score的问题则转化为求用户违约对数几率 log(Odds)log(Odds)的问题。
依照二元逻辑回归构造预测函数
h_{\theta }(x)=g(\theta ^{T}x)=\frac{1}{1+e^{^{-\theta ^{T}x}}}
其中 hθ(x)h_{\theta}(x)表示结果取1的概率。
推倒可得该事件的对数几率 log(Odds)log(Odds)如下:
log(Odds)=log\frac{p}{1-p}=log\frac{h_\theta(x)}{1-h_\theta(x)}=log\frac{\frac{1}{1+e^{^{-\theta ^{T}x}}}}{1-\frac{1}{1+e^{^{-\theta ^{T}x}}}}=\theta^{T}x
可以发现:在逻辑斯蒂回归模型中,输出Y=1的对数几率是输入条件x的线性函数。
\theta ^{T}x=\sum_{i=1}^{n}\theta _{i}x_{i}=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n} \\\theta =\begin{bmatrix} \theta _{0}\\ \theta _{1}\\ ...\\ \theta _{n} \end{bmatrix} ,x =\begin{bmatrix} x _{0}\\ x _{1}\\ ...\\ x _{n} \end{bmatrix}
由此可得 log(Odds)=θ0+θ1x1+...+θnxnlog(Odds)=\theta_0+\theta_1x_1+...+\theta_nx_n
回到信贷业务中
目标:寻找最理想的参数估计 θ\theta使得模型预测的概率相对已有样本最准确。
方法:损失函数最小化求得 θ\theta
逻辑回归的损失函数为对数损失函数(具体可由极大似然估计推倒):
\begin{align} L(\theta) & = \frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)}),y^{(i)}) \\\ & =-\frac{1}{m}[ \sum_{i=1}^{m} ( y^{(i)} \cdot \log (h_{\theta}(x^{(i)})) + (1-y^{(i)}) \cdot \log(1- h_{\theta}(x^{(i)})) ] \end{align} \qquad
利用梯度下降法求得 minL(θ)minL(\theta),得到 θ\theta
Repeat {
\theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
}(同时更新所有 θj\theta_j)
数据处理流程
数据可视化
可以通过数据可视化来验证我们对数据分布的一些猜想,使我们对数据分布有一个清晰的认识和理解,并且由此设计一些合理的人工规则。
方式:
- 各种图形展现工具
用途:
- 理解数据
- 方便数据探索
- 辨别分析离群点
数据清洗
1.检验异常样本
根据对具体业务的理解和认识去除一些异常极端的数据。例如在对网页浏览量的分析,可能需要去除爬虫用户的浏览数据。
2.缺省字段的处理
数据样本的某些特征字段可能有缺省值,需根据缺省值多少与特征类型区分处理
- 缺省值很多时直接舍弃。作为特征加入的话,可能反倒带入噪声,影响最后的结果。
- 非连续特征缺省量适中时,将Nan作为一个新类别加入至特征中
- 连续特征缺省量适中时,考虑给定一个step(比如age,我们可以考虑每隔2/3岁为一个步长),然后把它离散化,之后把NaN作为一个type加到属性类目中
- 缺省值很少时利用填充的办法进行处理。例如用均值、中位数、众数填充,模型填充等
特征分箱
分箱的定义
- 将连续变量离散化
- 将多状态的离散变量合并成少状态
分箱的重要性及其优势
- 离散特征的增加和减少都很容易,易于模型的快速迭代;
- 稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展;
- 离散化后的特征对异常数据有很强的鲁棒性;
- 离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
- 特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
- 可以将缺失作为独立的一类带入模型。
WOE(Weight of Evidence)编码
评分卡模型中一般会将特征进行WOE编码。WOE是一种有监督的编码方式,将预测类别的集中度的属性作为编码的数值。
优势
- 将特征的值规范到相近的尺度上。 (经验上讲,WOE的绝对值波动范围在0.1~3之间)。
- 具有业务含义。(自变量取某个值时对因变量正负比例的一种影响)
缺点
- 每个箱都包含好坏两个类别,计算成本增加
WOE计算公式
WOE=log(\frac{G_i/G_{total}}{B_i/B_{total}})
其中 Gi,BiG_i,B_i分别为自变量第i箱好样本个数与坏样本个数
求得WOE值取代原特征值做自变量进行训练。
数据采样
在数据正负样本不均衡情况下,当然正负样本不要求1:1,但是也不能太大。假如正负样本比例 1:10,把这样不均衡的数据直接放进模型中进行训练,准确率会很高,因为大部分都可以预测为负样本。但是训练出的模型泛化能力很弱。这时需要对数据进行采样,使得数据样本均衡。通常有四种办法来进行采样。
- 从负样本中抽取部分样本出来和正样本结合
- 正样本重复若干次
- SMOTE(原理及实现)
- 代价敏感学习
评分卡模型训练
算法
- 使用逻辑回归算法进行训练
两类错误
- 将坏人预测为正常借款人
- 将正常人预测为坏人
注意:在借贷业务中以上两种错误带来的代价不用!
应对
- 在目标函数或损失函数中增加逾期权重。
- 较差验证选择合适权重
初探机器学习与评分卡模型相关推荐
- 【风控建模】互联网金融-机器学习及评分卡构建
[博客地址]:https://blog.csdn.net/sunyaowu315 [博客大纲地址]:https://blog.csdn.net/sunyaowu315/article/details/ ...
- 信用评分卡模型开发及评估指标
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级两部分.主体评级和债项评级均有一系列评级模型组成,其中主体评级模型可用&qu ...
- python信用评分卡_基于Python的信用评分卡模型分析(二)
上一篇文章基于Python的信用评分卡模型分析(一)已经介绍了信用评分卡模型的数据预处理.探索性数据分析.变量分箱和变量选择等.接下来我们将继续讨论信用评分卡的模型实现和分析,信用评分的方法和自动评分 ...
- 信贷风控评分卡模型(上)_Give Me Some Credit(技术实现过程)
本帖是在2019年5月初入门python之时,选取的较为系统的练手案例,主要内容是信用风险计量体系之主体评级模型的开发过程(可用"四张卡"来表示,分别是A卡.B卡.C卡和F卡). ...
- 评分卡模型(一)评分卡建模实战
评分卡模型(一)评分卡建模实战 小P:我看你做的这些数据挖掘,虽然预测结果挺准的,但是完全不知道怎么来的啊 小H:其实在风控领域有个很流行的评分卡模型,可以很直观的告诉你什么特征加分,什么特征减分,每 ...
- 3分钟搞明白信用评分卡模型模型验证
2019独角兽企业重金招聘Python工程师标准>>> 信用评分卡模型在国外是一种成熟的预测方法,尤其在信用风险评估以及金融风险控制领域更是得到了比较广泛的使用,其原理是将模型变量W ...
- python金融风控评分卡模型和数据分析
python金融风控评分卡模型和数据分析微专业课(博主录制):http://dwz.date/b9vv 作者Toby:持牌照消费金融模型专家,和中科院,中科大教授保持长期项目合作:和同盾,聚信立等外部 ...
- python金融风控评分卡模型
python金融风控评分卡模型和数据分析微专业课(博主录制): [ http://dwz.date/b9vv ](https://study.163.com/series/1202875601.htm ...
- 评分卡模型开发(十)--总体流程
转自: https://blog.csdn.net/lll1528238733/article/details/76602006 一.信用风险评级模型的类型 信用风险计量体系包括主体评级模型和债项评级 ...
最新文章
- “治沙女杰”殷玉珍:和沙漠较量的女人
- 【CSDN】设置图片大小
- 前端基础8:HTML5新增标签及CSS3新属性 viewport 动画
- 关于gevent的协程间通信及队列和事件event用法
- java 僵尸进程_有关僵尸进程和孤儿进程的解释
- BP神经网络代码和原理
- 子网掩码换算 - 在线工具
- 周期信号的傅里叶变换
- Qt导航栏 QListWidget
- 基于Pygame的中国象棋的制作(China Chess)
- 《如何正确评估自己的工作能力》--马薇薇
- php larval 数据库when,Laravel DB类操作数据库
- 移动 PC 的数据加密工具包 - 安全分析
- 简单实用 | 用Gitbook做笔记 / 写书过程全记录
- 做自己的安卓拍照应用,其实很简单
- TriSun PDF to X中文版批量pdf转换功能
- 区块链未来的发展前景是什么?
- 我的同学聚会--性格决定命运[转载]
- python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件
- 蓝牙(七)L2CAP层协议解析
热门文章
- 信息学奥赛一本通 1367:查找二叉树(tree_a)
- AJP:22q11.2缺失综合征青少年gamma频带反应和远程通信中断的异常发育模式
- 关于js中 0 == ‘ ‘ 为 true 的问题
- 有道翻译 爬虫,分析反爬 附代码
- X86汇编学习小结----cmp 完整版本
- 哪款苹果无线充电宝最好?苹果无线充电宝哪个牌子好
- navicat导出数据库数据
- python读取txt文件写入失败-Python write 函数写文件失败
- STM32开发手册-IAP流程
- php ThinkPHP文章上一篇、下一篇解决方案