【博客地址】:https://blog.csdn.net/sunyaowu315
【博客大纲地址】:https://blog.csdn.net/sunyaowu315/article/details/82905347


  对数据分析、机器学习、数据科学、金融风控等感兴趣的小伙伴,需要数据集、代码、行业报告等各类学习资料,可添加微信:wu805686220(记得要备注喔!),也可关注微信公众号:风控圏子(别打错字,是圏子,不是圈子,算了直接复制吧!)

关注公众号后,可联系圈子助手加入如下社群:

  • 机器学习风控讨论群(微信群)
  • 反欺诈讨论群(微信群)
  • python学习交流群(微信群)
  • 研习社资料(qq群:102755159)(干货、资料、项目、代码、报告、课件)

相互学习,共同成长。


问题:

  • Logistic算法的原理是啥啊?
  • 为何用卡方分箱?
  • 为何需要woe编码呢?
  • 变量bad rate必须满足单调性吗?
  • 为何要检验变量的正负性、单调性、相关性?
  • IV值有什么用啊?该怎么判断呢?
  • 最终标准评分怎么转换的?为什么要加一个截距项呢?

文章目录

  • 一 Logistic算法原理
    • 1、基本概念
    • 2、算法特点
    • 3、算法应用
    • 4、算法推导
      • 1)Logistic分布
      • 2)二项Logistic回归模型
      • 3)模型参数估计
      • 4)极大似然估计
  • 二 标准评分卡开发流程
    • 1、数据获取
    • 2、数据处理
      • 1)EDA
      • 2)特征工程
      • 3)分箱
    • 3、变量选择
      • 1)woe编码
      • 2)IV重要性
      • 3)显著性、共线性、正负性、单调性分析的问题
    • 4、模型开发
    • 5、模型评估及监测指标
  • 三 基于Logistic算法的标准评分卡开发python代码案例实操
  • 四 总结

一 Logistic算法原理

1、基本概念

  逻辑斯蒂回归(logistic regression )是统计学中的经典分类方法,属于广义线性模型(generalizedlinear model)。虽然名字里带“回归”,但它实际上是一种分类方法,与多重线性回归有很多相同之处,最大的区别就在于它们的因变量取值不同。

  广义线下模型家族:

  • 若因变量是连续分布,就是多重线性回归
  • 若因变量是二项分布,就是Logistic回归
  • 若因变量是Poisson分布,就是Poisson回归
  • 若因变量是负二项分布,就是负二项回归

  Logistic是这样一个过程:对一个回归或者分类问题,建立代价函数,通过优化方法迭代求解出这个函数的最优参数,然后测试验证这个模型的好坏。

2、算法特点

  优点:

  • 速度快,适合二分类问题
  • 易解释,可以直接看到模型中各个变量的权重
  • 易调整,能容易地更新模型,吸收新的数据

  缺点:

  • 对数据和场景的适应性有限,精度一般,不如树模型、SVM、adaboost等一些其他的常用分类模型给力。

3、算法应用

  在Logistic回归模型中,y是一个定性变量,比如y=0或1,故其主要应用于研究某些分类事件发生的概率,如:银行业金融借贷场景中预测风险客户的违约逾期概率;气象局根据一些天气因素判断是否下雨;医疗机构根据病情特征判断客户患病的概率等。

  • 概率预测:根据模型,预测事件发生的概率;
  • 类型判别:将事件分类。

4、算法推导

1)Logistic分布

  我们首先介绍下Logistic分布(logistic distribution):

  设X为连续随机变量,X服从Logistic分布是指X具有下列分布函数和密度函数:

  如果所示:

2)二项Logistic回归模型

  二项Logistic回归模型(binomial logistic regression model)是一种分类模型,由条件概率P(Y|X)表示,形式为参数化的Logistic分布。这里,X取实数,Y取值0或1。

  二项Logistic回归模型是如下的条件概率分布:

  这里x是输入,y是输出,w和b是参数,w成为权值向量,b称为偏置,w*x为w和x的内积。

  Logistic回归比较两个条件概率的大小,将实例分到概率值较大的那一类。

  当输入向量和权值向量扩充时,w = (w(1),w(2),…,w(n),b)T,X = (x(1),x(2),…,x(n),1)T,这时,Logistic回归模型如下:

  一个事件的几率(odds)是指该事件发生概率与不发生概率的比值,如果事件发生的概率为p,不发生的概率为1-p,那么该事件的odds为p/(1-p),该事件的对数几率log odds 或logit函数为:

  对逻辑回归而言,得:

  注意!注意!pay attention!!!

  也就是说,在Logistic回归模型中,输出Y=1的对数几率是输入x的线性函数,或者说,输出Y=1的对数几率是由输入x的 线性函数 表示的模型。

  通过Logistic回归模型定义式可以将线性函数w*x转换为概率:

  这时,线性函数的值越接近正无穷,概率值越接近1;线性函数的值越接近负无穷,概率值越接近0。这样的模型,就是Logistic回归模型。

3)模型参数估计

  Logistic回归模型学习时,对于给定的训练数据集T={(x1,y1),(x2,y2),…,(xn,yn)},可以应用极大似然估计模型参数,从而得到完整的Logistic回归模型。

  设:

  似然函数为:

  对数似然函数为:

  对L(w)求极大值,得到w的估计值。

  注意!注意!pay attention!!!

  这样,求参问题,就变为了以对数似然函数为目标函数的求参问题,Logistic回归学习中通常采用的方法是梯度下降法及拟牛顿法
  假设w的极大似然估计值是w,那么学到的Logistic回归模型为:

4)极大似然估计

  (待续!)

二 标准评分卡开发流程

1、数据获取

  准备数据源,如:

2、数据处理

1)EDA

  对数据做描述性分析和探索性分析,发现变量的基本属性。

2)特征工程

  此处特征工程,特征特征处理,如缺失值、异常值、错误值、离群值等处理。

  对字段特征做处理,具体处理方式,请移步特征工程篇:【特征工程】呕心之作——深度了解特征工程

3)分箱

  • 概念:
    1.将连续变量离散化
    2.将多状态的离散变量合并成少状态
  • 目的:
    从模型效果上来看,特征分箱主要是为了降低变量的复杂性,减少变量噪音对模型的影响,提高自变量和因变量的相关度。从而使模型更加稳定。
  • 注意事项:
    分箱就是为了做到同组之间的差异尽可能的小,不同组之间的差异尽可能的大。
  • 分箱方法:
    等距、等频、卡方分箱、决策树分箱法
  • 分箱原则:
    (1)最小分箱占比不低于5%
    (2)箱内不能全部是好客户
    (3)连续箱单调

3、变量选择

1)woe编码

  • 概念:
    由于制作评分卡的某些需要,通常会在建立评分模型时将自变量(连续+离散都可以)做离散化处理(等宽切割,等高切割,或者利用决策树来切割),但是模型本身没办法很好地直接接受分类自变量的输入。所以信用评分卡中常用的WOE转换。
  • 目的:
    提升模型的预测效果,提高模型的可理解性。
  • 公式:
    WOE的公式就是:WOE=ln(好客户占比/坏客户占比)*100%=优势比
    好客户占比=数量(x︱y=好)/总人数

2)IV重要性

  • 概念:
      IV的全称是Information Value,中文意思是信息价值,或者信息量。
      在用逻辑回归、决策树等模型方法构建分类模型时,经常需要对自变量进行筛选。通常情况下,不会直接把所有变量直接放到模型中去进行拟合训练,而是会用一些方法。
      挑选入模变量过程是个比较复杂的过程,需要考虑的因素很多,比如:变量的预测能力,变量之间的相关性,变量的简单性(容易生成和使用),变量的强壮性(不容易被绕过),变量在业务上的可解释性(被挑战时可以解释的通)等等。但是,其中最主要和最直接的衡量标准是变量的预测能力
      “变量的预测能力”这个说法很笼统,很主观,非量化,而我们需要一些具体的量化指标来衡量每自变量的预测能力,并根据这些量化指标的大小,来确定入模变量。IV就是这样一种指标,他可以用来衡量自变量的预测能力。类似的指标还有信息增益、基尼系数等等。

  • 公式:

  • 标准:
      iv值一般取0.1-0.5,但iv值并不是越高越好,当高于0.5时就很可疑,因为它太过于好而显得不真实。但是也有些风控团队也将大于0.5的纳入模型,但是在学术界一般取值0.1-0.3

3)显著性、共线性、正负性、单调性分析的问题

  在变量初步选择完成后,我们还需要检查变量的可用性。通常要考虑的就是变量的显著性、共线性、正负性、单调性问题。

  注意!注意!pay attention!!!

  显著性水平,P-value,用于检验变量的有效性,通常取值为0.05以内。但在实际应用中,设为0.1,有可能比0.05更好,0.1的显著性水平就够了,90%相比95%的置信区间,其估计的误差范围要更小,也就是说牺牲估计的把握度可以换来估计的精确度。

  共线性不比解释,共线性明显容易导致过拟合。

  单调性正负性呢?我们记得在Logistic回归模型中,输出Y=1的对数几率是输入x的线性函数,又因为既然是线性函数,w内积向量的取值就需要正负一致呀;既然要保持线性,变量bad rate 就要保持单调一致呀。这样就不容易增加模型的复杂性,更易于解释。

  我们看图说话:

  这样,是否就立即明白了这个算法的简单性,线性加权的原理,一些困惑是不是就迎刃而解啦!

4、模型开发

  可使用R、python、matlab等语言,自己编写函数,或直接调用相对应的函数,进行样本拆分、模型训练、交叉验证等骚操作。具体流程,我们移步代码区,盘一遍就懂。

5、模型评估及监测指标

  风控模型评价指标总结

三 基于Logistic算法的标准评分卡开发python代码案例实操

  logistic算法构建标准评分卡python代码实例

四 总结

  logistic模型,是数据分析、建模人员的入门操作,正因其通用性、可调整和易解释性,才普遍为银行业、互联网金融行业业务所用。总结一句话:全民兼可盘!

  对数据分析、机器学习、数据科学、金融风控等感兴趣的小伙伴,需要数据集、代码、行业报告等各类学习资料,可添加qq群(资料共享群):102755159,也可添加微信wu805686220,加入微信讨论群,相互学习,共同成长。

  风里雨里,只要你骚,我就敢皮。

【分类算法】Logistic算法原理、标准评分卡开发流程、python代码案例相关推荐

  1. 第五章 逻辑回归模型在评分卡开发中的应用

    逻辑回归模型在评分卡开发中的应用 课程简介:在分类场景中,逻辑回归模型是常用的一类算法.它具有结构简单.可解释性强.输出结果是"软分类"的特点.评分模型多采用这类算法.同时逻辑回归 ...

  2. 评分卡开发方法论scorecard

    学习评分卡对于我这种非科班出身来说是比较难的一件事情(我是搞程序员出身,科班软件工程的),在过去查阅和学习了很多资料后,发现了一个评分卡的开发方法论:SCORECARD,感觉比较符合软件工程思想,而且 ...

  3. 一文彻底理解评分卡开发中——Y的确定(Vintage分析、滚动率分析等)

    评分卡已经在各大银行和公司都实际运用于业务,也有很多前辈对它进行了详细的阐述.本文将从支付和信贷评分卡建立的角度,对比分析不同行业在建立评分卡时因变量Y确定的差异.让想了解评分卡的小伙伴,有一个更深刻 ...

  4. Dijkstra 路径规划算法在二维仿真环境中的应用 -- Python代码实现

    在上一节中,介绍了 Dijkstra 算法的原理以及在图中的应用,这一节将一步步实现 Dijkstra 路径规划算法在二维环境中的路径规划,来进一步加深对 Dijkstra 算法的理解. 所需要用到的 ...

  5. MATLAB算法实战应用案例精讲-【元启发式算法】随机蛙跳跃算法(SFLA)(补充篇)(附Python代码实现)

    目录 前言 算法原理 算法思想 算法流程 实现步骤 族群优化(局部优化)

  6. 算法笔记(18)数据升维及Python代码实现

    数据集特征不足的情况下,需要对数据集的特征进行扩充,两种方法:交互式特征和多项式特征. 向特征集添加交互式特征 交互式特征是在原始数据特征中添加交互项,使特征数量增加. Python代码实现: X_m ...

  7. 缺失数据em算法python_重磅!李航《统计学习方法》Python 代码更新,适应第二版!...

    重磅!李航<统计学习方法>Python 代码更新,适应第二版! 点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 李航的<统计 ...

  8. 基于Adam算法优化GRU神经网络的短期负荷预测(Python代码实现)

    目录 1 Adam优化算法 2 Adam算法中的学习率衰减策略 3 GRU神经网络 4 运行结果 5 参考文献 6 Python代码实现 1 Adam优化算法 2 Adam算法中的学习率衰减策略 该文 ...

  9. 【风控模型】Logistic算法构建标准信用评分卡模型python代码案例

    [博客地址]:https://blog.csdn.net/sunyaowu315 [博客大纲地址]:https://blog.csdn.net/sunyaowu315/article/details/ ...

最新文章

  1. 在 Raspberry Pi 3B 上安装最新版 Node-RED
  2. (转)使用DataGridView控件常见问题解答
  3. SpringBoot配置文件敏感信息加密,springboot配置文件数据库密码加密jasypt
  4. Dropout也能自动化了,谷歌Quoc Le等人利用强化学习自动找寻模型专用Dropout
  5. 列表(list)和集合(set)
  6. 【WCF】无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分.
  7. Rust 逆袭!位列 Stack Overflow 2018 最受欢迎编程语言榜首
  8. OpenCV-绘制简易直方图DrawHistImg
  9. 看图找茬找不同小程序源码
  10. servlet.ServletException: java.lang.NoClassDefFoundError: cn/huiyuan/lwj/vo
  11. 中华传统吉祥图案集锦
  12. 对话罗永浩:手机行业唯一的聪明人死了,我胜算很大
  13. #define private public
  14. AndroidFTP客户端-FTP管家源码
  15. 实现jul 日志重定向到 slf4j
  16. 怎么样可以在阿里云搭建个人网站及域名绑定介绍
  17. linux mysql 命令行查询 乱码_mysql命令提示行连接乱码的解决
  18. android gps 经纬度转换,Android GPS 取经纬度
  19. BZOJ3876支线剧情
  20. SGE:作业调度系统安装和使用简要说明

热门文章

  1. 磁盘位置_CPT201-磁盘
  2. dirver时区_JDBD连接MySQL中的驱动与时区问题
  3. matplotlib里的fig和ax的区别。
  4. 用matlab求解不等方程组,Matlab:求高人指点用matlab求解非线性方程组,解出来的值不收敛,提前结束...
  5. 2021全国大学生物联网大赛记
  6. C++基本序列式容器效率比较
  7. python self
  8. python h5游戏_从零开始制作H5人脸融合小游戏
  9. 文巾解题 326. 3的幂
  10. MATLAB应用实战系列(七十七)-基于长时间序列栅格数据的MK检验