【算法业务】互联网风控业务中的拒绝推断场景算法应用分享(涉及半监督算法、异常检测、变分自编码、样本权重自适应调整、迁移学习等)

news/2024/9/22 19:05:52/

1. 业务目标和任务描述 

        该项目是很早期的一个工作,属于互联网信贷风控场景,研究并应用信贷中的拒绝推断任务,处理方式也许对于目前的一些业务还有参考意义,因此这里做下分享。拒绝推断是指在信贷业务中,利用已知的接受客户(即通过信贷审批的客户)的信息来推断被拒绝客户(未通过信贷审批的客户)的表现,以更准确地评估信贷风险和建立更有效的信用评估模型。

        因此业务的总目标是构建有效的用户评分模型,评估贷款申请者是否有能力如期偿还贷款。具体要做的事情是从已建立的审批体系中拒绝的用户中捞回好用户,更好的管理资产,打标资产。

        任务的初始想法:我们往往只能观察到部分用户的贷后行为,无法获取被拒绝的申请者的贷后表现。仅使用部分有贷后的数据,为估计总体而建立的评分模型存在参数估计的偏差,导致好的用户被拒绝,造成损失。也就是我们通常说的二八,20%用户被通过,80%的用户被拒绝,这80%中可能蕴含着数量可观的好用户。在我们当前的场景下,通过的用户比例更少,平均只有5%左右,95%都被拒绝了。因此造成了很大的资源浪费。

        基于该思路,再来分析下为什么需要拒绝推断

首先是样本完整性

  • 在实际信贷业务中,通常只有接受客户的完整数据,包括他们的信用特征和还款表现等。而被拒绝客户只有申请时的部分信息,没有后续的还款表现数据。
  • 拒绝推断可以弥补被拒绝客户数据的缺失,使样本更具完整性,从而提高信用评估模型的准确性和可靠性。

其次是风险评估准确性

  • 仅基于接受客户的数据建立的信用评估模型可能存在偏差,因为它没有考虑到被拒绝客户的潜在风险。
  • 通过拒绝推断,可以将被拒绝客户的特征纳入分析,更全面地了解不同风险水平的客户群体,从而提高风险评估的准确性。

2. 任务执行描述

2.1 核心问题

         为了能够有效捞回被拒绝的用户,我们需要解决解决两个核心问题:

(1)如何利用被拒绝的用户样本信息,使得能够对总体数据建立较完备的模型。                  (2)如何加强模型对坏用户的识别能力。

        下图展示了当数据不够完备的情况下,对于模型估计的偏差影响:

        可以看出,当有足够更丰富的数据来描述数据分布P(x)时,我们可以获得更加可靠的模型对于真是数据的分布估计。

2.2 样本特征数据及筛选

  • 用户基础信息(年龄、学历、身份证所属身份等)
  • 信用卡/消费信息(持卡、信用卡账单、线下消费分期等)
  • 通讯录及通信行为(手机号归属城市、通讯录亲属信息、注册时长、近期呼入呼出行为及时长等)
  • Applist信息(高危app安装、母婴等各类型app安装情况、APP风险分类情况等)
  • 设备指纹(设备号相关风险信息、手机型号、设备GPS信息等)
  • 申请行为风险(总拒绝次数、同邮箱/号码等关联多idno、短期频繁申请行为、申请时段信息等)
  • 案件平台信息(基于关系网络的黑名单、设备共用、几度邻居的逾期情况等)
  • 三方分(反欺诈、多头、借款逾期信息、征信、电商等)

采用IV筛选

        其中,pyi是这个组中响应客户(风险模型中,对应的是违约客户,总之,指的是模型中预测变量取值为“是”或者说1的个体)占所有样本中所有响应客户的比例,pni是这个组中未响应客户占样本中所有未响应客户的比例,#yi是这个组中响应客户的数量,#ni是这个组中未响应客户的数量,#yT是样本中所有响应客户的数量,#nT是样本中所有未响应客户的数量。 从这个公式中我们可以体会到,WOE表示的实际上是“当前分组中响应客户占所有响应客户的比例”和“当前分组中没有响应的客户占所有没有响应的客户的比例”的差异。

采用随机森林筛选

        看每个特征在随机森林中的每棵树上做了多大的贡献,然后取平均值,最后比较不同特征之间的贡献大小。贡献度的衡量指标包括:基尼指数(gini)、袋外数据(OOB)错误率作为评价指标来衡量。

2.3 模型处理流程

2.3.1 初筛模型

        存在大量被拒绝的用户,“拒绝(未知贷后表现)的用户”是“有贷后表现用户”的约20倍 模型特征可以全量调取,自有+包年特征 目标:在捞回更多好用户的同时,拒绝一部分逾期风险大的用户。

         初筛模型选择以及相应的算法分析讨论:

         1. 模型主体采用 半监督架构

         2. 将无监督与监督模型有机结合形成半监督框架

             模型讨论:

                (1)变分自编码(VAE)

                (2)标签传播(LP)

                (3)异常检测(OD)

          3. 监督模型             

                (1)Stacking(GBDT&LR)

                (2)自适应提升模型(AdaXgboost)

2.3.1.1 半监督学习(SSL)

        半监督学习有两个样本集,一个有标记,一个没有标记.分别记作 Lable={(xi,yi)},Unlabled={(xi)}.并且数量上,L<<U. 1.单独使用有标记样本,我们能够生成有监督分类算法。 2.单独使用无标记样本,我们能够生成无监督聚类算法。 3.两者都使用,在1中加入无标记样本,增强有监督分类的效果;同样的,在2中加入有标记样本,增强无监督聚类的效果。   在我们的实践中,半监督分类学习侧重于在有监督的分类算法中加入无标记样本/信息来实现半监督分类。也就是在无类标签的样例的帮助下训练有类标签的样本,获得比只用有类标签的样本训练得到的分类器性能更优的分类器,弥补有类标签的样本不足的缺陷,其中类标签yi取有限离散值yi∈{c1,c2,···,cc},cj∈N。

        SSL的成立依赖于模型假设,当模型假设正确时,无类标签的样例能够帮助改进学习性能。SSL依赖的两种主要假设:

(1)聚类假设(Cluster Assumption) 当两个样例位于同一聚类簇时,它们在很大的概率下有相同的类标签.这个假设的等价定义为低密度分离假设(Low Sensity Separation Assumption),即分类 决策边界应该穿过稀疏数据区域,而避免将稠密数 据区域的样例分到决策边界两侧.平滑假设有点类似聚类假设,位于稠密数据区域的两个距离很近的样例的类标签相似。

(2)流形假设(Manifold Assumption) 将高维数据嵌入到低维流形中,当两个样例位于低维流形中的一个小局部邻域内时,它们具有相似的类标签。许多实验研究表明当SSL不满足这些假设或模型假设不正确时,无类标签的样例不仅不能对学习性能起到改进作用,反而会恶化学习性能,导致 SSL的性能下降。.

2.3.1.2 流形假设(变分自编码)

        变分自编码器(VAEs)是学习低维数据表示的强大模型,将高维的数据映射到低维, 使该低维的数据能够反映原高维数据的某些本质结构特征。关于VAE的算法原理可以参考我们之前的文章《生成式模型与判别式模型对比(涉及VAE、CRF的数学原理详述)》。

2.3.1.3 标签扩散模型(本场景下某种程度上的聚类假设)

        标签扩散模型基于图的结构,将已知标签信息从已标记的节点传播到未标记的节点。其核心思想是利用节点之间的相似性或连接关系,通过扩散的方式推断未标记节点的标签。在一个图中,节点代表数据对象,边表示节点之间的关系。如果两个节点之间存在较强的连接或相似性,那么它们更有可能具有相同的标签。标签扩散模型通过在图上进行迭代传播,逐渐将标签信息从已标记的节点传播到未标记的节点,直到达到一定的收敛条件。在仅有部分数据有标签的情况下,标签扩散模型可以利用已标记数据的信息来推断未标记数据的标签,从而提高学习效果。

        从某种角度看,标签扩散过程中,如果节点之间的连接紧密且具有相似的标签传播趋势,可能会在一定程度上形成类似聚类的效果。即具有相似标签的节点在传播过程中会逐渐聚集在一起。事实上,基于共同特征、向量相似度等都可以建立图结构。

2.3.1.4  异常检测(结构信息)

异常检测方法介绍【1】

KNN 异常检测

        原理:认为异常点距离正常点比较远,通过计算每个数据点的 K 近邻距离(或平均距离),与阈值比较或取距离排序前 n 个最大的作为异常点,计算距离一般使用欧式距离或角度距离。

HBOS(基于直方图的异常检测)

        过程类似朴素贝叶斯模型,假设特征相互独立,对每个特征作直方图,连乘样例特征在各个直方图中的频率得到生成概率。优点:速度快,适合大数据情形。缺点:特征相互独立条件强,现实中可能不符合,不适合异常数据过多的情形。

LOF(局部异常因子)

        首先找出每个数据点的 K 个近邻,然后计算 LOF 得分,得分越高越可能是异常点。LOF 是一个比值,分子是 K 个近邻的平均局部可达密度,分母是该数据点的局部可达密度。可达密度中,分子是 K - 近邻的个数,分母是 K - 近邻可达距离之和。A 到 B 的可达距离定义为 A 和 B 的真实距离与 B 的 k - 近邻距离的最大值。

OneClassSvm

        当训练数据只有一类 positive(或 negative)时,需要学习训练数据的边界。假设最好的边界要远离特征空间中的原点,目标转换到特征空间就是找一个离原点比较远的边界。

iForest(孤立森林)

        适用于异常点较少的情况,采用构造多个决策树的方式进行异常检测。对数据集有放回抽样,构建二叉树时随机选取一个特征和分割点,将数据分类,直至达到一定深度或叶子节点只包含一个数据点。数据点在多个二叉树上的平均深度越浅越可能是异常值。只适合检测全局异常点,不适合检测局部异常点。

2.3.1.5  监督模型结合无监督信息(半监督学习架构)
1. 第一种模型结构

Variational autoencoder + Gradient boosting machine + Logistic regression + Class weight

        模型优势互补: LR属于线性模型,易处理离散特征,容易并行化,可以轻松处理上亿条数据,但是学习能力十分有限,需要大量的特征工程来增加模型的学习能力。GBDT也是一种经常用来发现特征组合的有效思路。将训练完GBDT的叶子节点对应为LR的每一维特征,由于GBDT从根节点到叶子节点的路径,每个分割节点都是选择使得平方损失误差达到最小的节点和分割点,所以该条路径上特征的组合具有一定的区分性。

2. 第二种模型结构

基于Anomaly detection family模型结构【2】: k-NearestNeighbor , Local Outlier Factor ,Histogram-based Outlier Detection,One class svm ,Isolated forest

3. 第三种模型结构

 Adaboost思想结合xgboost、ks在场景中的应用

2.3.1.6  模型应用结论

        第三种模型结构结合VAE+OD信息,获得的KS最高,线上应用最佳。

2.3.2 审批模型

        拒绝的用户与有贷后表现的用户比例差不多1:1。 模型特征加入了部分按条收费的第三方数据。 目标:尽可能识别出逾期风险大的用户进行排除,特别强调对坏人的识别能力。

        审批模型有几种处理方式:

        第一种采用多分类:

        第二种采用多模型融合思路:

        第三种:面向top3 level bad rate & rank order优化的AdaXgboost,能够基于错分的数据进行采样权重的动态调整。

        第四种:采用TrAdaBoost(Transfer AdaBoost)【3】迁移学习思路。TrAdaBoost 的基本思想是利用已有的源域数据和少量的目标域数据进行学习,从而提升目标域任务的性能。它通过调整源域样本的权重,使得那些对目标域任务更有帮助的源域样本在后续的学习中起到更大的作用。在每一轮迭代中,TrAdaBoost 会根据当前分类器在目标域数据上的错误率来调整源域和目标域样本的权重。如果一个源域样本被错误分类,那么它的权重会降低;如果一个目标域样本被错误分类,那么它的权重会增加。

3. 参考材料

【1】Anomaly detection and three most used algorithms

【2】XGBOD: Improving Supervised Outlier Detection with Unsupervised Representation Learning

【3】Boosting for Transfer Learning


http://www.ppmy.cn/news/1528971.html

相关文章

Vue2学习笔记(02条件渲染 、监视数据的原理)

1、v-if和v-show的区别 2、Vue监视数据的原理

SystemVerilog中的Semaphores

SystemVerilog中Semaphore&#xff08;旗语&#xff09;是一个多个进程之间同步的机制之一&#xff0c;这里需要同步的原因是这多个进程共享某些资源。 举一个场景&#xff1a;SoC中的,CPU和DMA都希望去访问相同地址的内存空间。实际的情况可能是CPU的访问覆盖DMA的访问&#x…

linux系统蓝牙框架

一、前言 本文主要从大框架上介绍linux系统蓝牙功能架构&#xff0c;包括硬件架构以及软件架构。本文将从如下方面展开&#xff1a; 1.硬件选型及连接 2.软件架构。 二、硬件架构及连接 市面上带蓝牙功能的消费电子主要是采用soc 无线模组的硬件架构。很多无线模组都集成了…

人话学Python-循环语句

一&#xff1a;while语句 while语句的组成由判断条件和执行语句组成。当满足条件时会不断执行后续语句&#xff0c;然后再循环执行的语句结束之后再次回到条件判断&#xff0c;如此循环。 pos 0 ans 0 while pos < 6:ans pos * 4pos 1 print(ans)>>>84"&…

软件工程专业未来发展方向

1. 前端开发&#xff08;Front-end Development&#xff09; 简介&#xff1a; 前端开发者专注于网站和应用程序的用户界面和用户体验设计。他们使用HTML、CSS、JavaScript等基本技术&#xff0c;以及React、Angular、Vue.js等前端框架&#xff0c;来创建互动性强、响应迅速的…

20240922 每日AI必读资讯

OpenAI 首席科学家 MIT演讲&#xff01; - 揭示 o1模型训练核心秘密&#xff1a; 通过激励模型学习是培养 AGI 系统通用技能的最佳方式。 - 提出了类比“教人钓鱼”的方式&#xff0c;强调激励学习的重要性&#xff1a;“授人以鱼&#xff0c;不如授人以渔”&#xff0c;但是…

微信小程序点赞动画特效实现

这里提供两种实现点赞动画特效的方法&#xff1a; 方法一&#xff1a;使用 CSS 动画 wxml 文件: <view class"like-container"><image src"{{isLiked ? likedImg : unlikedImg}}" class"like-icon {{isLiked ? liked : }}" bindta…

695. 岛屿的最大面积

思路&#xff1a; 只有当前是陆地&#xff0c;才会构成岛屿 当前是陆地&#xff0c;进入回溯 往当前的上、下、左、右位置分别找陆地位置&#xff0c;为陆地 1>标记为2:代表已经遍历过的陆地 2>记录当前方向的陆地总数 以当前陆地组成的岛屿面积当前陆地面积向上的…