当前位置: 首页 > news >正文

【学习笔记】互联网金融:芝麻信用分的建模过程

学习资料: 数据分析学习随记 | 互联网金融行业2C授信模型(芝麻信用)

1. 背景

互联网金融的本质是风控

1.1 数据分析师的角色

数据分析师在金融行业基本上有两种角色:

1.1.1 数据建模师

偏算法,但要很懂业务。要求对算法的理解较深,相对来说对行业经验要求不是很高。
与纯互联网行业对比,金融行业的数据建模师的价值更容易得到体现,而且相对更有趣。

  • 工作内容:
    • 数据源
      这是和其他数据分析师差别最大的地方。 互联网金融很多时候需要基于大数据去规避风险,数据源越多越好。因此数据建模师需要和其他公司进行数据合作,或者数据采购。
    • 信用评分模型
      模型监控、维护、优化迭代
    • 其他数据挖掘建模
  • 能力要求:
    • 数据源在前期决定了模型的效果,要具备良好的沟通能力和快速反馈的能力。
    • 金融行业本身比较成熟,比模型更加重要的是分析师自身的想法和验证。
    • 在前期重点是围绕数据源和数据处理,模型可以用逻辑回归、决策树、GBDT、随机森林、神经网络等。

1.1.2 分控分析师

除了一定的模型理解能力,还需要大量的行业和法律法规经验。

1.2 产品对象

互联网金融与其他行业不太一样,互联网金融在产品对象上分为to B和to C,都是依赖央行信用报告。

  • to B:对企业整体的信用进行评估,做整体授信
  • to C:对个人整体的信用进行评估,得到个人信用分

2. 授信模型

以芝麻信用分为例,

  • 能够很好地判断一个人的信用到底好不好
  • 另一个潜在价值是可以结合人的行为偏好来做更准确的推荐。

芝麻信用分是以下面五个维度综合评估而来的:
在这里插入图片描述

  1. 身份特质-- 稳定性
    学历的高低影响了收入的多少,这是长时间改不了的特质。
  2. 履约能力-- 兜底性
    有无房车,个人资产能力的证明,消费后按时还款的能力。
  3. 信用历史 – 历史性
    信用卡有无逾期,历史行为最直接的信用体现。
  4. 人脉关系 – 稳定性验证 + 弱价值性
    支付宝好友的信用分是不是都很高,是否土豪,一个人的交际圈也代表着一定的偿还能力。
  5. 行为偏好-- 真正价值
    喜欢买价格高的还是买价格低的,这个部分很重要,表示人本身的当前信息,对产品后续决策有非常大的价值。

3. 模型落地

授信模型的建立过程跟数据分析标准化流程非常像,模型最终的评估指标是坏账率

3.1 数据源

每个维度用了哪些数据字段,这些就是数据源。

数据变量:

  • 原始变量:直接存储在数据库中的最基础变量,比如每天的交易额。
  • 衍生变量:因为金融的本质是风险,所以都要对原始变量进行加工转化,得到衍生变量。

一般有3种方式对原始变量进行扩充:

  • 时间维度衍生:
    • 最近一个月交易额
    • 最近三个月交易额
  • 函数衍生:
    • 最大交易额
    • 最小交易额
    • 交易额方差比例
  • 比例衍生:
    • 最近一个月交易额除以最近三个月交易额

选择变量时,基于RFM原则:

  • R(Recency,最近,最近一次消费时间间隔):指用户最近一次消费距离现在多长时间了。
  • F(Frequency,频次,一段时间内的消费频次):指用户一段时间内消费了多少次。
  • M(Monetary,,一段时间内的消费金额):指用户一段时间内消费的金额。

3.2 数据处理 => 数值化

数据处理、数据建模都是为业务服务。真实工作中,数据据处理和数据建模会慢慢迭代、优化。
所以在前期的数据处理不会很复杂,

前期的数据处理一般分为三种:

  1. 数值型和字符串型字段的缺失性和合理性检验,剔除无效字段。
    50%以上即可去掉。

  2. 数值型字段的相关性验证
    因为在前期,所有的字段都会拿出来,有很多的变量相关性非常强,但这个对于模型的训练没有帮助,因此把相关性强的先过滤掉。 【相关性规律待学】

  3. 对字符串型字段的离散化处理
    一般对字符型字段采用的是专家打分法,将字符串型变量转化成数值。

相关性过滤:一般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的方法, 来解决跨页面通信问题&#xff0c;或者通过iframe嵌套的不同页面之间的通信a.父页面代码如下<div v-if"src" class"iframe"><iframeref"iframe"id…...

JavaWeb

1、静态Web html、css 2、动态Web 提供给所有人看的数据始终会发生变化。技术栈&#xff1a;Servlet/JSP&#xff0c;ASP&#xff0c;PHP。 Web应用程序&#xff1a;可以提供浏览器访问的程序。 1、这个统一的web资源会被放在同一个文件夹下&#xff0c;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位为网络前缀&#xff0c;后8位代表主机号。如下1100 0000&#xff0c;1010 1000&#xff0c;0000 0001&#xff0c;0000 0000192.168.0.0/16192.168.0.1 ~ 192.168.255.254前16位为网络前缀&#xff0c;后16位代表主机号。如下1…...

《爆肝整理》保姆级系列教程python接口自动化(二十二)--unittest执行顺序隐藏的坑(详解)

简介 大多数的初学者在使用 unittest 框架时候&#xff0c;不清楚用例的执行顺序到底是怎样的。对测试类里面的类和方法分不清楚&#xff0c;不知道什么时候执行&#xff0c;什么时候不执行。虽然或许通过代码实现了&#xff0c;也是稀里糊涂的一知半解&#xff0c;这样还好&am…...

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

第二章 IOC操作bean管理&#xff08;XML注入其他类型属性&#xff08;字面量&#xff0c;外部bean&#xff0c;内部bean&#xff0c;级联赋值&#xff09;、XML注入集合属性&#xff09; 1.IOC操作bean管理&#xff08;XML注入其他类型属性&#xff09; &#xff08;1&#xf…...

Kotlin-枚举和印章

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

_linux (TCP协议通讯流程)

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

PMP考试详解,新考纲有什么变化?

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

C++学习笔记-日期和时间

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

Nordic nRF芯片FDS模块学习

FDS系统学习 文章目录FDS系统学习一、ROM&#xff0c;RAM&#xff0c;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 内存模型呢&#xff1f; JVM 内存模型是为规范描述 Java 虚拟机在执行 Java 程序时&#xff0c;将程序中的数据和代码存储到计算机内存中的方式和规则。JVM 内存模型定义 Java 虚拟机所使用的内存结构以及内存区域之间的关系&…...

NMS详解

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

考出PMP证书到底有没有用?

我们将从三方面分享&#xff1a; 1. PMP 证书在国内的含金量怎么样&#xff1f; 2. HR 如何看待 PMP 证书&#xff1f; 3. 拿到 PMP 证书后&#xff0c;有哪些变化&#xff1f; 一&#xff0c;PMP证书的含金量 说到 PMP 证书的含金量&#xff0c;相信这个问题是所有学员都…...

寻路库recastnavigation改造

本文是介绍对寻路库recastnavigation 改造&#xff0c;使得使用更加友好。 Git仓库: https://github.com/jiangguilong2000/recastnavigation 首先&#xff0c;我们要做一些前置操作 SDL: 开放源代码的跨平台多媒体开发库 Premake&#xff1a;量跨平台构建系统 环境: 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原文链接&#xff1a;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自动化测试用例需要关注的几点

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

harfbuzz 的用法

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

JSP 在线学习管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

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

Python学习笔记——PIL库(Pillow库)总结

一、图像数据的格式 ①jpg 支持高级别的压缩&#xff0c;利用部分损耗&#xff0c;使图片变小&#xff0c;方便网络传播。 ②png 无损压缩格式&#xff0c;比jpg略大&#xff0c;较好的保存图片画质&#xff0c;支持透明效果。 ③gif 动图效果&#xff0c;多帧图像组合到…...

C. Build Permutation【整数理论、构造、思维】

链接 理论基础 结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。结论&#xff1a;在区间[n,2n]上&#xff0c;至少存在一个完全平方数。 构造⌈n⌉2构造\lceil \sqrt{n}\rceil^2构造⌈…...

关于ETL的两种架构(ETL架构和ELT架构)

ETL&#xff0c;是英文 Extract-Transform-Load 的缩写&#xff0c;用来描述将数据从来源端经过抽取&#xff08;extract&#xff09;、转换&#xff08;transform&#xff09;、加载&#xff08;load&#xff09;至目的端的过程。ETL一词较常用在数据仓库&#xff0c;但其对象…...

android系统目录

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