社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习在信用评分卡中的应用

SigAI • 6 年前 • 1071 次点击  

SIGAI推荐

SIGAI知识库论文解读小视频升级上线

支持向量机1-从线性分类器到最大化分类间隔

支持向量机2-拉格朗日对偶

支持向量机3-线性不可分的问题

支持向量机4-核映射与核函数

支持向量机5-KKT条件的使用

Generative Adversarial Nets论文解读

【含讲解视频、讲解文档、PPT以及源代码】

Playing Atari with Deep Reinforcement Learning论文解读

【含讲解视频、讲解文档、PPT】

Human-level control through deep reinforcement learning论文解读

【含讲解视频、讲解文档、PPT以及源代码】

 详见:www.sigai.cn 知识库



作者简介:

张中峰

中科院博士毕业,研究方向为信息检索、机器学习;曾任职于百度、亿赞普,有多年计算广告相关的算法研发经验;前融360风控技术副总监,负责线上小额信贷产品的风控算法,包括反欺诈策略及模型、信用评分卡等。


互联网金融,特别是P2P信贷在过去几年可以说经历了大起大落的过山车。在经历了2016、2017年的高速发展后,随着整体经济环境遇冷、政策层面监管趋严,行业已进入洗牌周期。特别是随着18年7月P2P暴雷潮的出现,更是为行业前途蒙上一层迷雾。


抛开行业话题,在技术层面上,至少验证了大数据和机器学习技术在金融风控领域的可行性。金融风控成为大数据真正落地并展现其商业价值的领域之一。在P2P的一地鸡毛之中,大数据风控技术仍在在茁壮成长,并逐步进入精耕细作的深水地带。越是在行业寒冬阶段,反而越能体现风控的重要性。


基于AI的风控应用

一个典型的风控体系,包含了贷前、贷中和贷后三个阶段,每个阶段都有相应的研究问题。


贷前主要解决用户准入和风险定价问题,即面对一个新申请的进件用户,判断用户是否符合产品的放款条件及相应的放款额度、价格、期限等问题。主要包括三类问题:

1)反欺诈识别:根据用户提交的材料进行身份核实,确保用户不存在欺诈行为;


2)信用评级:与传统银行的信用评分卡原理一致,综合用户的社交数据、行为数据、收入数据等,判定用户的信用风险等级,评估用户的履约能力;


3)风险定价:根据用户的负债能力和收入稳定性,判断用户可承担的月供金额,确定用户的放款额度、偿还期限等,并根据用户风险等级确定用户的费率。这三个问题往往是互相影响、互为前提的。比如,对一个月收入3000的用户来说,月供在1000左右,用户可能履约良好,信用等级良好;但如果月供提高到4000,严重超出了其收入水平,即便不是有意欺诈,也可能出现断供的情况,从而得到比较差的信用等级。

贷中一般是针对已放款用户展开。主要研究问题包括:

1)还款风险监控:比如用户会否因失业、过度举债、家庭突发状况等一些突发原因导致还款能力降低,出现逾期风险;


2)贷中风险的政策制定:当用户出现逾期风险时,如何根据用户风险原因制定相应的策略,减少机构损失。如为经济暂时困难的用户主动延长还款期限、减少月供,甚至提供延期还款服务;


3)用户复贷:对履约良好,且收入水平明显改善的用户,提供增信服务,以满足其更高水平的消费信贷需求;或在其授信额度范围内,提供循环信贷服务。

贷后一般是针对逾期用户展开。由于用户已经出现逾期,贷后风控的目标是如何刺激用户还款减少损失。主要研究问题包括:

1)催收评分卡:将用户按照催收难度划分等级,并制定相应的催收策略。如对偶然逾期、出现暂时性困难的用户,主动沟通帮助其度过眼前困难,一方面减少了机构损失,另一方面也有助于与用户建立长远的信任关系;而对严重逾期的用户,可能需要让更有催收经验的人员介入沟通,甚至采取必要的法律途径;


2)催收策略制定:由于互联网金融主要进行电话催收,而用户提供的通话记录或联系人往往内容复杂且包含大量噪音,如何从中准确找出联系紧密的电话,提升催收效率;


3)失联修复:对已经失联用户,如何触达,进行用户找回;

其中,贷前反欺诈评分卡一般称为F卡;信用评分卡一般称为A卡;贷中评分卡称为B卡;贷后催收评分卡称为C卡。


本文重点介绍A卡的建模过程。


风控评分卡建模流程

如图1所示为一个典型的风控评分卡建模流程,也是机器学习模型的算法过程。我们仅针对信用评分卡的建模过程,简单介绍每个步骤。

问题定义

海森堡曾言,『提出正确的问题,往往等于解决了问题的大半』。在动手建模型之前,一定花点时间审视下建模的问题。虽然在实际工作中,我们所做的模型往往都是需求方或更资深的工程师已确定好的需求,但深入理解问题提出的背景、目标及抽象逻辑,有助于在实际建模过程中有的放矢、更准确把握每个步骤的产出。


以A卡建模为例,建模目的包括如下几方面:

1)确保政策的一致性,尽量减少人工干预,并利用机器学习的优势提升决策效率;


2)准确反映并量化用户的风险级别,政策人员可以控制和减少风险损失,因此对评分卡等级的排序能力、稳定性要求会比较高。

信贷类问题一大特点是时效低,反馈周期长。


在纯互联网领域,如广告CTR预估、推荐算法等,算法的反馈周期往往是秒级。在广告CTR预估问题中,用户对所展示的广告如果感兴趣,几秒之内便会决定是否要点击。同时,借助互联网巨大的流量优势,一天时间便能收集到千万甚至亿级的样本,从而满足算法快速迭代的需求。CTR预估问题中,对算法时效性要求往往更高。一些时效类特征即便在几天内对广告投放有指导意义,只要模型能够及时捕捉到这些特征的变化,也可以放心的将这类特征加入模型中。


但在金融场景下,用户从拿到借款到有还款表现,周期往往是以月计。有些场景下要等半年甚至一年以上的表现周期,才可以充分观察到信贷人群的实际表现。从而一个模型或策略至少要等几个月甚至一年以上才能评估其实际效果。因此,在金融场景下,对算法的稳定性要求更高,模型分析人员更倾向于捕捉长期稳定有效的特征,一些实时热点类的话题反而不适合放到模型中。


好坏用户定义:对样本标签的定义,需要与实际业务场景、政策目标相一致,并综合考虑样本量、业务历史等的需要。如在现金分期场景中,如果画一下用户回款率和逾期天数趋势分布曲线,用户逾期30天以后回款率便已经趋于稳定,因此可以30天以上逾期为筛选坏样本的依据。在某些场景下,如曾经的Payday Loan,由于整个业务周期只有半月或1个月,为加快模型迭代速度,有时甚至会定义7+甚至1+逾期用户为坏客户。在一些银行场景中,出于坏账计提考虑,可能定义90天以上逾期为坏客户。


获取样本

在实际项目中,综合考虑业务发展历史和建模目标,选取合适的建模样本集,是影响模型效果的关键因素之一。建模人员有必要提前了解、沟通样本时段中的关键政策变化,市场环境波动及产品结构调整等因素,并充分考虑到这些因素对样本结构的影响。


如对现金贷场景,去年12月份的监管政策直接导致各小贷机构产品逾期率异常飙升,本来不会逾期的用户大范围产生了逾期,而在正常市场环境下选取建模样本时,有必要排除这段时间的样本。


对金融场景来说,观察周期越长,样本表现越充分。但同时也说明样本产生时间距离现在越久远,从而一些近期发生的市场变动便不能被捕捉到。如何选取样本时间周期是样本选择中需要考虑的。


数据采集及治理,数据仓库建设

数据仓库建设是建模准备工作中最基础,也是最耗时的步骤之一。数据质量好坏直接决定了抽取特征的有效性,是模型成功的关键因素。


在互金场景下,系统可利用的数据源通常包括用户自述基本资料、APP本地信息、授权抓取数据及第三方采购数据几大类。数据来源复杂且数据量大,有必要根据业务需求、数据性质及内在逻辑对数据进行归并、清洗,建立规范化的数据仓库。


其中,用户自述数据,除性别、年龄等少数信息外,诸如用户职业、收入水平等信息在申请过程中往往很难进行核验。一般不推荐在正式模型中使用这类无法核验真伪、且用户可随意修改的特征,以防止模型被有组织的hack而失效。第三方采购数据通常是结构化数据,可根据性价比及是否可回溯酌情采纳。


用户授权抓取数据通常是积累数据源中处理最耗时的数据来源。常用数据抓取项包括运营商、电商数据(包括支付宝、淘宝、京东等)、信用卡账单、社保公积金等。这些数据的爬虫来源复杂多样,以运营商为例,不仅三大运营商的服务官网结构差异很大,甚至不同省份的运营商服务网站也各不相同。运营商数据的采集首先要进行不同来源数据的对齐,其次要根据对运营商业务的理解,对数据进行基本的清洗。 如对手机号中的+86、86-、(86)等格式进行统一;同样是主叫、被叫,在不同省份/通信服务商的名称可能是主叫/被叫、呼入/呼出、本市主叫、异地被叫等。需要进行归一化处理。


在实际项目中,数据仓库的建设虽然有专门的BI或数据团队支持,但具体数据清洗的逻辑、策略,建模工程师需要深度参与并提出建设性的意见。


特征工程

实际工作中,对具体算法的改进、优化通常比较少,更多是直接使用线程的工具包,如R、Python的Sklearn、XGBoost等。算法工程师之间使用的具体算法上往往差异不大。此时,对特征工程的建设则更能体现出差异。特征工程一般包括特征提取、特征加工变换和特征选择几个步骤。


特征提取

特征提取就是从规范化的数据源中挖掘有效特征集合。可采取工程化的方法,从数据源中批量挖掘尽可能丰富的备选特征,然后从中选择有效特征。具体提取的特征集,依赖于算法人员对具体数据源的理解。


下文以运营商类数据为例,详细列举特征提取的几个参考思路。


首先,数据源中通常可以直接解析出一些基本信息及统计类特征。如运营商中,在网时长、运营商账户星级、用户使用的套餐类型、套餐额度、月均消费金额、主/被叫次数、通话时长等特征。


其次,从标签分类角度。分析运营商类数据的结构,可发现其核心是详细的通话记录及短信发送记录。两类记录的结构类似,以通话记录为例,一个典型的通话记录包含如下信息:

其中每个字段都可以从某个角度为特征工程提供依据。根据通话日期,可将通话记录划分为近7天、半月、近1月、近3月、近6月等时间窗口,也可按照具体日期划分为工作日、节假日等日期类别;根据通话时间,可将一天24小时划分为不同的时间片段,如凌晨(0-6点)、上午(7-12)、下午、晚上等;通话时长为连续类特征,可用来汇总通话时间。


通话对象的电话号码集合一般非常庞大,可对其进行归并处理。一种思路是按号码归属地划分,可区分出全国各省市的电话。 另一种思路是对号码打标签,根据标签对号码进行聚类。如根据电话邦、百度手机卫士或搜狗号码通的标记,区分出骚扰电话、生活服务类电话、快递外卖类、金融机构电话等,甚至根据业务积累区分号码是否为黑名单用户、申请用户或申请被拒用户。用户与不同号码标签的通话情况,可以从侧面反映用户的通话习惯和生活特点。对号码进行标签管理的前提,是需要维护一个足够全面、准确的黄页标签库。


由此,从黄页标签的思路,结合通话记录结构,我们可以设计一套黄页标签类特征衍生逻辑,总结如下:

以工程化方式,对上述不同维度之间做交叉,能够从通话数据中衍生出几千甚至上万维的黄页类特征,为后续建模提供丰富的备选特征集。


用户的通话记录也是用户社交关系的反映,可以从社交图谱的角度对运营商通话数据进行重构,得到一个庞大的通话社交关系网,如下图所示:


从而可利用Graph Mining相关技术,从通话图中挖掘特征。

1)利用社区聚类算法,从通话网络中挖掘中介团伙;


2)借鉴信息检索的链接分析,使用PageRank、HITS等算法,计算每个节点的社交权重;


3)标签传播: 通话网络中一些节点在业务中已存在一些状态,如申请被拒、正常还款、逾期等。可利用Label Propagation算法,将节点状态在网络中进行传播。

以上,从不同角度审视运营商通话数据,可引申出不同种类的特征工程策略。从单一数据源中可挖掘出成千上万维特征。这些特征可能存在大量稀疏特征,且很多特征的稳定性或相关性并不能满足建模需求。但通过特征工程的挖掘,至少为后续建模提供了丰富的可选特征集。“巧妇难为无米之炊”,足够多样化的特征挖掘是模型优化的必备条件之一。


特征预处理

抽取的特征在放入模型之前,通常需要进行一些必要的预处理过程。此处仅简单介绍几个基本的预处理技术。

1)缺失值处理

对特征的缺失值,常用的几种处理策略是:特征分bin时将缺失值作为NA或单独一类;将缺失值取特征的中值、均值或众数填充;缺失值直接填充为0或-1;缺失值根据实际风险表现,填充为风险表现最接近的一类;


2)离散特征聚类

离散类,如省份区域等,直接使用类别取值会过于繁杂。可以考虑根据特征在不同取值处的风险表现,将风险表现接近的值聚为一类;


3)连续特征分bin

对连续特征分箱是在LR模型中常用的处理技巧。最容易想到的分箱策略是等频或等宽分箱,但在实际建模中通常比较少采用。可以考虑借鉴决策树的思路,每次选取使信息熵或信息增益最大的点,作为连续特征的分裂节点。另一种常用策略是,将连续特征空间细分为N个bin,合并相邻且坏账率接近的bin,直到整体分bin区间单调。

其他特征预处理技术,如WOE计算、特征归一化等在此不再赘述。


特征筛选

正式建模之前,一般会对特征工程挖掘到的特征集进行筛选,以选择相关性高、稳定性强的特征,作为入模变量。


常用特征筛选一般会考虑如下几方面:

1)特征覆盖率(cover rate),选取覆盖率达到一定阈值的特征;


2)特征相关性:如根据特征本身的KS值、IV或卡方值,选择与建模label相关性高的特征;


3)特征稳定性:比如通过衡量特征的PSI,选择随时间波动性尽可能小的特征。


此外,还可以通过VIF、相关性系数等指标,排除特征之间的共线性。


评分卡建模

特征和样本标签准备好后,评分卡建模的过程则比较自然。虽然深度学习等技术在互联网领域已大行其道,在信用评分卡建模中,逻辑回归或GBDT等仍然是目前主流的建模算法。一方面是金融领域对特征的可解释性要求会更高,通过LR或GBDT建模,比较容易直观得到每个特征在模型结果中的权重,并根据业务经验解释权重系数的合理性。另一方面,实际评分卡建模中,一般入模特征维度并不高。在低维度建模中,LR和GBDT已经可以取得比较可观的效果。


模型评估

模型建立后,需要对模型的预测能力、稳定性进行评估。信用评分模型常用的评估指标为KS、AUC等。 考虑到金融业务反馈周期长的特点,除了划分训练集、测试集外,通常会预留一段训练样本时间段之外的数据集,作为OOT(跨时间)集合,以测量模型在时间上的稳定性。



▲向上滑动查看更多推荐文章


十一月后文章,本公众号不提供PDF版本,请移步www.sigai.cn

➡️知识库➡️技术文章,获取PDF版本。


科普类

【获取码】SIGAI0413

  机器学习——波澜壮阔四十年 

【获取码】SIGAI0620

  理解计算:从√2到AlphaGo ——第1季从√2谈起

【获取码】SIGAI0702

  理解计算:从√2到AlphaGo ——第2季 神经计算的历史背景 

【获取码】SIGAI0713

  理解计算:从√2到AlphaGo ——第3季 神经网络的数学模型 

【获取码】SIGAI0815

  理解计算:从√2到AlphaGo ——第4季 凛冬将至 

【获取码】SIGAI1019

  理解计算:从√2到AlphaGo ——第5季 导数的前生今生

【获取码】SIGAI0829

AI时代大点兵——国内外知名AI公司2018年最新盘点【完整版】

【获取码】SIGAI1008

  非算法类人工智能从业者须知的十件事

【获取码】SIGAI1102

  永远的金大侠——人工智能的江湖

数学类

【获取码】SIGAI0417

  学好机器学习需要哪些数学知识

【获取码】SIGAI0511

  理解梯度下降法

【获取码】SIGAI0518

  理解凸优化

【获取码】SIGAI0531

  理解牛顿法  

【获取码】SIGAI1031

  理解概率密度函数


机器学习类

【获取码】SIGAI0428

  用一张图理解SVM的脉络

【获取码】SIGAI0505

  理解神经网络的激活函数

【获取码】SIGAI0522

【实验】理解SVM核函数和参数的作用

【获取码】SIGAI0601

【群话题精华】五月集锦—机器学习和深度学习中一些值得思考的问题   

【获取码】SIGAI0602

  大话AdaBoost算法    

【获取码】SIGAI0606

  理解主成分分析(PCA)    

【获取码】SIGAI0611

  理解决策树  

【获取码】SIGAI0613

  用一句话总结常用的机器学习算法

【获取码】SIGAI0618

  理解过拟合

【获取码】SIGAI0627

  k近邻算法

【获取码】SIGAI0704

  机器学习算法地图

【获取码】SIGAI0706

  反向传播算法推导—全连接神经网络

【获取码】SIGAI0720

  流形学习概论

【获取码】SIGAI0725 

  随机森林概述

【获取码】SIGAI0711

  怎样成为一名优秀的算法工程师

【获取码】SIGAI0802

  机器学习和深度学习中值得弄清楚的一些问题

【获取码】SIGAI0808

  机器学习和深度学习核心知识点总结--写在校园招聘即将开始前

【获取码】SIGAI0822

  机器学习中的最优化算法总结

【获取码】SIGAI0824

  浓缩就是精华--SIGAI机器学习蓝宝书

【获取码】SIGAI0831

  理解AdaBoost算法    

【获取码】SIGAI0903

  深入浅出聚类算法

【获取码】SIGAI0905

  机器学习发展历史回顾

【获取码】SIGAI0914

  理解Logistic回归

【获取码】SIGAI0917

  机器学习中的目标函数总结

【获取码】SIGAI0921

  机器学习与深度学习常见面试题

【获取码】SIGAI1008

  理解生成模型与判别模型

【获取码】SIGAI1024

  机器学习和深度学习常见面试题(下)

深度学习类

【获取码】SIGAI0426

  卷积神经网络为什么能够称霸计算机视觉领域?

【获取码】SIGAI0508

  深度卷积神经网络演化历史及结构改进脉络-40页长文全面解读 

【获取码】SIGAI0515

  循环神经网络综述—语音识别与自然语言处理的利器

【获取码】SIGAI0625

   卷积神经网络的压缩与加速

【获取码】SIGAI0709

  生成式对抗网络模型综述

【获取码】SIGAI0711

  怎样成为一名优秀的算法工程师

【获取码】SIGAI0718

  基于深度负相关学习的人群计数方法

【获取码】SIGAI0723

  关于感受野的总结

【获取码】SIGAI0802

  机器学习和深度学习中值得弄清楚的一些问题

【获取码】SIGAI0806

  反向传播算法推导--卷积神经网络

【获取码】SIGAI0808

  机器学习和深度学习核心知识点总结--写在校园招聘即将开始前

【获取码】SIGAI0810

  理解SpatialTransformer Networks

【获取码】SIGAI0822

  机器学习中的最优化算法总结

【获取码】SIGAI0824

  浓缩就是精华--SIGAI机器学习蓝宝书

【获取码】SIGAI0827

  DenseNet详解

【获取码】SIGAI0905

  机器学习发展历史回顾

【获取码】SIGAI0907

  网络表征学习综述

【获取码】SIGAI0917

  机器学习中的目标函数总结

【获取码】SIGAI0921

  机器学习与深度学习常见面试题

【获取码】SIGAI0928

  轻量化神经网络综述

【获取码】SIGAI1015

  三维深度学习中的目标分类与语义分割

【获取码】SIGAI1017

  化秋毫为波澜:运动放大算法(深度学习版)

【获取码】SIGAI1022

  深度多目标跟踪算法检测

【获取码】SIGAI1024

  机器学习和深度学习常见面试题(下)


机器视觉类

【获取码】SIGAI0420

  人脸识别算法演化史

【获取码】SIGAI0424

  基于深度学习的目标检测算法综述

【获取码】SIGAI0426

  卷积神经网络为什么能够称霸计算机视觉领域?

【获取码】SIGAI0503

  人脸检测算法综述

【获取码】SIGAI0525 

【SIGAI综述】行人检测算法     

【获取码】SIGAI0604

  FlowNet到FlowNet2.0:基于卷积神经网络的光流预测算法 

【获取码】SIGAI0608

  人体骨骼关键点检测综述 

【获取码】SIGAI0615

  目标检测算法之YOLO

【获取码】SIGAI0622

  场景文本检测——CTPN算法介绍

【获取码】SIGAI0629

  自然场景文本检测识别技术综述 

【获取码】SIGAI0716

  人脸检测算法之S3FD

【获取码】SIGAI0727

  基于内容的图像检索技术综述--传统经典方法

【获取码】SIGAI0817

  基于内容的图像检索技术综述--CNN方法

【获取码】SIGAI0910

  视觉多目标跟踪算法综述(上)-附开源代码下载链接整理

【获取码】SIGAI0914

  计算机视觉技术self-attention最新进展 

【获取码】SIGAI0919

  人脸识别中的活体检测算法综述

【获取码】SIGAI0924

  浅谈动作识别TSN,TRN, ECO

【获取码】SIGAI0926

  OCR技术简介

【获取码】SIGAI1012

  目标检测最新进展总结与展望

【获取码】SIGAI1029

  目标检测算法中检测框合并策略技术综述

【获取码】SIGAI1112

  图像分割技术介绍


自然语言处理

【获取码】SIGAI0803

  基于深度神经网络的自动问答概述

【获取码】SIGAI0820

  文本表示简介


工业应用类

【获取码】SIGAI0529

  机器学习在自动驾驶中的应用-以百度阿波罗平台为例【上】




本文为SIGAI原创

 如需转载,欢迎发消息到本订号



SIGAI推荐

免费挑战4P计划【2.0】:用Python实现一个深度学习实践项目

小程序Python课程试听(详情戳蓝字)

报名方式:

方式1:关注SIGAI公众号,回复“4P计划”即可获得申请链接


方式2: 登陆www.sigai.cn,选择《深度学习Python开发-基础篇》,进入详情页,点击立即报名


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/ZaymFcsNYL
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/26405
 
1071 次点击