【学习笔记】互联网金融:芝麻信用分的建模过程
学习资料: 数据分析学习随记 | 互联网金融行业2C授信模型(芝麻信用)
1. 背景
互联网金融的本质是风控。
1.1 数据分析师的角色
数据分析师在金融行业基本上有两种角色:
1.1.1 数据建模师
偏算法,但要很懂业务。要求对算法的理解较深,相对来说对行业经验要求不是很高。
与纯互联网行业对比,金融行业的数据建模师的价值更容易得到体现,而且相对更有趣。
- 工作内容:
- 数据源
这是和其他数据分析师差别最大的地方。 互联网金融很多时候需要基于大数据去规避风险,数据源越多越好。因此数据建模师需要和其他公司进行数据合作,或者数据采购。 - 信用评分模型
模型监控、维护、优化迭代 - 其他数据挖掘建模
- 数据源
- 能力要求:
- 数据源在前期决定了模型的效果,要具备良好的沟通能力和快速反馈的能力。
- 金融行业本身比较成熟,比模型更加重要的是分析师自身的想法和验证。
- 在前期重点是围绕数据源和数据处理,模型可以用逻辑回归、决策树、GBDT、随机森林、神经网络等。
1.1.2 分控分析师
除了一定的模型理解能力,还需要大量的行业和法律法规经验。
1.2 产品对象
互联网金融与其他行业不太一样,互联网金融在产品对象上分为to B和to C,都是依赖央行信用报告。
- to B:对企业整体的信用进行评估,做整体授信
- to C:对个人整体的信用进行评估,得到个人信用分
2. 授信模型
以芝麻信用分为例,
- 能够很好地判断一个人的信用到底好不好
- 另一个潜在价值是可以结合人的行为偏好来做更准确的推荐。
芝麻信用分是以下面五个维度综合评估而来的:
- 身份特质-- 稳定性
学历的高低影响了收入的多少,这是长时间改不了的特质。 - 履约能力-- 兜底性
有无房车,个人资产能力的证明,消费后按时还款的能力。 - 信用历史 – 历史性
信用卡有无逾期,历史行为最直接的信用体现。 - 人脉关系 – 稳定性验证 + 弱价值性
支付宝好友的信用分是不是都很高,是否土豪,一个人的交际圈也代表着一定的偿还能力。 - 行为偏好-- 真正价值
喜欢买价格高的还是买价格低的,这个部分很重要,表示人本身的当前信息,对产品后续决策有非常大的价值。
3. 模型落地
授信模型的建立过程跟数据分析标准化流程非常像,模型最终的评估指标是坏账率。
3.1 数据源
每个维度用了哪些数据字段,这些就是数据源。
数据变量:
- 原始变量:直接存储在数据库中的最基础变量,比如每天的交易额。
- 衍生变量:因为金融的本质是风险,所以都要对原始变量进行加工转化,得到衍生变量。
一般有3种方式对原始变量进行扩充:
- 时间维度衍生:
- 最近一个月交易额
- 最近三个月交易额
- 函数衍生:
- 最大交易额
- 最小交易额
- 交易额方差比例
- 比例衍生:
- 最近一个月交易额除以最近三个月交易额
选择变量时,基于RFM原则:
- R(Recency,最近,最近一次消费时间间隔):指用户最近一次消费距离现在多长时间了。
- F(Frequency,频次,一段时间内的消费频次):指用户一段时间内消费了多少次。
- M(Monetary,钱,一段时间内的消费金额):指用户一段时间内消费的金额。
3.2 数据处理 => 数值化
数据处理、数据建模都是为业务服务。真实工作中,数据据处理和数据建模会慢慢迭代、优化。
所以在前期的数据处理不会很复杂,
前期的数据处理一般分为三种:
-
数值型和字符串型字段的缺失性和合理性检验,剔除无效字段。
50%以上即可去掉。 -
数值型字段的相关性验证
因为在前期,所有的字段都会拿出来,有很多的变量相关性非常强,但这个对于模型的训练没有帮助,因此把相关性强的先过滤掉。 【相关性规律待学】 -
对字符串型字段的离散化处理
一般对字符型字段采用的是专家打分法,将字符串型变量转化成数值。
相关性过滤:一般0.7以上是高度相关性,所以在后面建模的时候,只保留一个变量即可,其他3个相关性高于0.7的变量先不要放在模型训练里。
如下图,最近1年母婴消费金额与其他三个变量均有很高的相关性,因此在后续建模的时候先保留母婴消费金额.
专家打分法:是按照常识理解直接分段取值。
在模型前期,只要大的逻辑没有问题即可。比如芝麻信用分评估中的身份特质,学历是小学还是博士,这样的字段不是数字型字段而实字符串型字段。然后设定小学学历信用分段是0~20, 博士学历信用分段90~100,将字符型变量转化成数值。
3.3 数据标准化
虽然所有变量都以数值化,但在量级和量刚上相差很大。
【?】如交易额和交易次数,这就没有可以性,所以要对所有的字段进行标准化。
标准化的方法很多,选择合适的就行,这对后面的模型效果没有影响
- MAX-MIN
- Z-score
【?】数据标准化后,所有变量的取值区间都会在0~1范围,接下来就可以进行数据建模了。
3.4 数据建模
在建模之前,一定要把业务目标理清,这样才能知道能用什么模型。
芝麻信用分有5个维度,5个维度在不同时期的权重也不一样,所以每个维度都要单独建模。
建模前的思考举例:
- 业务目标:根据用户在5个维度的综合芝麻分,来给用户提供其他额外服务,比如花呗、借呗和免押金,同时保证用户不违约。
- 建模目标:根据用户的数据,算出用户违约的概率。而这个概率也可以转化为用户的分数。
- 模型选择:基于建模目标,选择逻辑回归模型比较合适。一是简单,二是非线性。
以历史信用为例,假设该模块包含的字段有最近一个月主动查询金融机构信用次数x1、最近一个月徐换代总额x2、最近一个月逾期总额x3,那么其违约概率就为:(x1、2、3为3个数值)
P值为用户违约的概率,a、b、c为拟合系数。
举例:A用户:身份特质、履约能力、信用历史、人脉关系、行为偏好分别算出的概率是0.1、0.2、0.3、0.4、0.5 。根据当前产品所处阶段,觉得历史信用和履约能力两个模块最重要,那么这两个模块的影响权重就是0.35,其他都是0.1。计算步骤:
- 那么小A 的违约概率就是: P = 0.10.1+0.350.2+0.350.3+0.10.4+0.1*0.5=275
- 分数公式:score=(1-P)*A+B,区间为[300,900],可以算出来A=600,B=300
- 所以A的芝麻综合分=0.725*600+300=735。
模型离线效果指标: 机器学习
- 混淆矩阵:查准率和查全率
-
混淆矩阵的理解:
- 100:本身是未还款,模型预测后也是未还款 - 准确
- 400:本身是已还款,模型预测后也是已还款 - 准确
- 20:本身是已还款,模型预测后是未还款 - 不准确
- 80:本身是未还款,模型预测后是已还款 - 不准确
-
查准率: 模型准确度。
- 预测准确准确的对角线100+400 = 500
- 所有样本量100+20+80+400 = 600
- 查准率 = 500 / 600 = 83%
-
查全率:预测准确的样本,在选择样本中的占比。
金融模型的主要目标是还款,所以只需看预测成功的未还款人数,在实际的总未还款人数中的占比。- 模型预测准确的未还款人是100人
- 本身未还款100 + 80 = 180人
- 查全率是100/180 = 56%
-
- ROC曲线:根据混淆矩阵做出的可视化分析,区分模型是否能较好把好坏样本分开的一个图,一般都是取ROC下面的面积AUC,来衡量模型效果,越大越好,一般至少0.6以上。
离线模型看这两个参数就够了,这块本身有点难理解,特别是ROC曲线不太好举例,如果你实在不理解参数意义,那么记住也可以,因为真实工作中,最重要的还是坏账率这个评估指标。
在产品初期,因为模型的变量太多,所以模型的迭代速度都非常快,基本上每个月都要跑一次分数,这个时候肯会出现某个用户的分数奇高,这都是正常的,而这些都需要不断调整权重和系数,慢慢优化才行,不过最重要的还是落地效果,就是用了这个模型之后坏账率怎么样,这就是模型落地了 。
3.5 模型落地
模型落地举例
-
落地前:
如根据芝麻信用分就可以申请招联金融信用额度,那么这就涉及到两个公司的产品合作了。金融行业的合作都是非常小心的,所以在正式合作前:- ①招联金融会提供一批样本给芝麻,芝麻这边数据建模师根据模型给出这批用户的违约概率;
- ②招联金融根据芝麻给出的用户违约概率,算模型的准确度;
- ③如果模型准确度还可以,双方才会正式展开合作(用户群覆盖度和模型准确度)
-
落地中:
正式落地时,招联在给每个用户评估信用时,实际上芝麻信用分只是一个参考维度而已,一般都是这样:- ①机器调用该用户的央行征信报告评估值X,这个是最重要的;
- ②借口调用用户的芝麻信用分Y;
- ③该用户在招联的信用评估情况Z;
基于X,Y,Z,内部在根据专家规则法出一套授权方案(很灵活),到这一步,基本上模型就正式使用了。
3.6 模型优化
- 落地后:
前期一般是每一周,招联金融都会和芝麻这边对一次坏账情况,只有到这个时候,模型的参数调整才是最有意义的,这个时候也是最考验数据建模师的时候,
调参方法:
- ①先找出是因为某个子模型引起还是所有模型引起;
- ②如果是子模型引起,直接调整该模型的参数即可,如果是整体模型都有问题,那就要重新进行数据处理了,如WOE分组,更换衍生变量,字符型字段重新打分等等。
相关文章:

【学习笔记】互联网金融:芝麻信用分的建模过程
学习资料: 数据分析学习随记 | 互联网金融行业2C授信模型(芝麻信用) 1. 背景 互联网金融的本质是风控。 1.1 数据分析师的角色 数据分析师在金融行业基本上有两种角色: 1.1.1 数据建模师 偏算法,但要很懂业务。要求对算法的理解较深&am…...

Linux C/C++或者嵌入式开发到底有没有35岁危机?
一个读者问了一个问题: 我现在25岁,双非一本本科。在深圳上班,做嵌入式开发,打算走Linux C/C开发,工资目前一般。读了前辈写的很多博客之后,觉得很棒。我现在有一些疑问。 1.最近互联网裁员很厉害嘛&#x…...

国内领先的十大API接口排行
应用程序编程接口API即(Application Programming Interface),现在众多企业的应用系统中常用的开放接口,对接相应的系统、软件功能,简化专业化的程序开发。 一、百度API 百度API超市开通1136个数据服务接口。 网址&a…...

【Linux】Kickstart 配置U盘自动化安装Linux系统
文章目录前言一、刻录USB二、配置以BIOS方式启动引导2.1 引导文件配置2.2 KS文件配置三、以EFI方式启动引导3.1 引导文件3.2 KS文件四、 总结前言 之前安装系统,例如在VMware虚拟机中或物理服务器中,都是根据图形界面上的指示进行下一步这类的操作。 现…...

【Spring MVC】这一篇,带你从入门到进阶
目录 1、什么是MVC? 2、什么是 Spring MVC 3、如何学好 Spring MVC? 3.1、如何创建 Spring MVC 项目 3.1.1、使用Spring Initializr创建(推荐) 3.2、将 Spring 程序与用户(浏览器)联通 3.3、基础注解…...

InstallAware Multi-Platform updated
InstallAware Multi-Platform updated 原生ARM:为您的内置设置、IDE和整个工具链添加了Apple macOS和Linux ARM构建。 本地化:引擎内多语言感知,可再分发工具,具有资产隔离功能,使您的IP保持安全。 模板:将…...

Spring Batch 高级篇-多线程步骤
目录 引言 概念 案例 转视频版 引言 接着上篇:Spring Batch ItemWriter组件,了解Spring Batch ItemWriter处理组件后,接下来一起学习一下Spring Batch 高级功能-多线程步骤 概念 默认的情况下,步骤基本上在单线程中执行&…...

关于iframe一些通讯的记录(可适用工作流审批)
一.知识点(1).我们可以通过postMessage(发送方)和onmessage(接收方)这两个HTML5的方法, 来解决跨页面通信问题,或者通过iframe嵌套的不同页面之间的通信a.父页面代码如下<div v-if"src" class"iframe"><iframeref"iframe"id…...

JavaWeb
1、静态Web html、css 2、动态Web 提供给所有人看的数据始终会发生变化。技术栈:Servlet/JSP,ASP,PHP。 Web应用程序:可以提供浏览器访问的程序。 1、这个统一的web资源会被放在同一个文件夹下,web应用程序-->Tom…...

ip段192.168.1.0/24和192.168.0.0/16
192.168.1.0/24192.168.1.1 ~ 192.168.1.254前24位为网络前缀,后8位代表主机号。如下1100 0000,1010 1000,0000 0001,0000 0000192.168.0.0/16192.168.0.1 ~ 192.168.255.254前16位为网络前缀,后16位代表主机号。如下1…...

《爆肝整理》保姆级系列教程python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)
简介 大多数的初学者在使用 unittest 框架时候,不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚,不知道什么时候执行,什么时候不执行。虽然或许通过代码实现了,也是稀里糊涂的一知半解,这样还好&am…...

【第二章 IOC操作bean管理(XML注入其他类型属性(字面量,外部bean,内部bean,级联赋值)、XML注入集合属性)】
第二章 IOC操作bean管理(XML注入其他类型属性(字面量,外部bean,内部bean,级联赋值)、XML注入集合属性) 1.IOC操作bean管理(XML注入其他类型属性) (1…...

Kotlin-枚举和印章
kotlin-枚举 枚举也是一个对象,枚举对象的定义需要使用enum关键字 枚举对象可以定义函数 假设定义一个星期枚举对象。就是一下写法 enum class Week {星期一,星期二,星期三,星期四,星期五,星期六,星期日;//打印星期几fun printWeek(){println("这是星期枚举对…...

_linux (TCP协议通讯流程)
文章目录TCP协议通讯流程TCP 和 UDP 对比TCP协议通讯流程 下图是基于TCP协议的客户端/服务器程序的一般流程: 服务器初始化: 调用socket, 创建文件描述符;调用bind, 将当前的文件描述符和ip/port绑定在一起;如果这个端口已经被其他进程占用了, 就会bind失 败;调用listen, 声…...

PMP考试详解,新考纲有什么变化?
一,为什么优先考虑PMP持证人员? PMP证书在我国大型企业、跨国企业、央企/国企等单位的招聘中都比较重视,特别是在许多项目投标环节中,明确标明需要有PMP持证人员,才能在投标、竞标中代表公司有资格承担项目。 除此之…...

C++学习笔记-日期和时间
C中可以使用的日期时间API主要分为两类: C-style 日期时间库,位于头文件中。这是原先<time.h>头文件的C版本。 chrono库:C 11中新增API,增加了时间点,时长和时钟等相关接口。 在C11之前,C编程只能使…...

Nordic nRF芯片FDS模块学习
FDS系统学习 文章目录FDS系统学习一、ROM,RAM,FLASH作用二、ROM,RAM和FLASH在单片中的运作原理三、Flash访问模块FDS用法1. FDS在sdk_config.h中的配置2. fds_register()注册3. fds_record_write()写记录4. fds_record_find()查找5. fds_record_open()读…...

JVM 学习(1)—JVM 与 JMM 内存模型简单理解
一、JVM 内存模型概述 (1) 为什么会出现 JVM 内存模型呢? JVM 内存模型是为规范描述 Java 虚拟机在执行 Java 程序时,将程序中的数据和代码存储到计算机内存中的方式和规则。JVM 内存模型定义 Java 虚拟机所使用的内存结构以及内存区域之间的关系&…...

NMS详解
(类别,坐标1,坐标2,坐标3,坐标4,类别分数) step1:对最后一列分数进行排序 ,可以看到类别就被打乱了 step2: 弹出得到selected_bboxes作为基准,减少bbox_list。其实就是准…...

考出PMP证书到底有没有用?
我们将从三方面分享: 1. PMP 证书在国内的含金量怎么样? 2. HR 如何看待 PMP 证书? 3. 拿到 PMP 证书后,有哪些变化? 一,PMP证书的含金量 说到 PMP 证书的含金量,相信这个问题是所有学员都…...

寻路库recastnavigation改造
本文是介绍对寻路库recastnavigation 改造,使得使用更加友好。 Git仓库: https://github.com/jiangguilong2000/recastnavigation 首先,我们要做一些前置操作 SDL: 开放源代码的跨平台多媒体开发库 Premake:量跨平台构建系统 环境: VS 2019…...

pandas 一些设置随记
显示所有的行、列 # 显示所有列 pd.set_option(display.max_columns, None) # 显示所有行 pd.set_option(display.max_rows, None)不换行显示 pd.set_option(display.width, 1000) 输出对其 pd.set_option(display.unicode.ambiguous_as_wide, True) pd.set_option(display.…...

SSIM学习
SSIM原文链接:https://www.researchgate.net/profile/Eero-Simoncelli/publication/3327793_Image_Quality_Assessment_From_Error_Visibility_to_Structural_Similarity/links/542173b20cf203f155c6bf1a/Image-Quality-Assessment-From-Error-Visibility-to-Struct…...

selenium自动化测试用例需要关注的几点
自动化测试设计简介注:参看文章地址 我们在本章提供的信息,对自动化测试领域的新人和经验丰富的老手都是有用的。本篇中描述最常见的自动化测试类型, 还描述了可以增强您的自动化测试套件可维护性和扩展性的“设计模式”。还没有使用这些技术…...

harfbuzz 的用法
hb-blob: HarfBuzz Manual harfbuzz 的用法 HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字…...

JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc
一、源码特点 JSP 在线学习管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…...

Python学习笔记——PIL库(Pillow库)总结
一、图像数据的格式 ①jpg 支持高级别的压缩,利用部分损耗,使图片变小,方便网络传播。 ②png 无损压缩格式,比jpg略大,较好的保存图片画质,支持透明效果。 ③gif 动图效果,多帧图像组合到…...

C. Build Permutation【整数理论、构造、思维】
链接 理论基础 结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。结论:在区间[n,2n]上,至少存在一个完全平方数。 构造⌈n⌉2构造\lceil \sqrt{n}\rceil^2构造⌈…...

关于ETL的两种架构(ETL架构和ELT架构)
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象…...

android系统目录
环境:android studio引入android系统源码android和ubuntu策略路由的差异android源码编译问题(单编)repo(android源码)命令使用和注意事项wifi:wifi的加密类型梳理android11 wifisetting 流程跟踪android wifi热点settingandroid n…...