专栏名称: 盈灿咨询
盈灿咨询是国内领先的新金融研究机构。凭借多年专注领域的研究、集结行业资源,拥有最受认可的行业研究工具和品牌运营管理思想,为客户提供个性化、多层次的解决方案和品牌运营等专业的咨询服务。
目录
相关文章推荐
51好读  ›  专栏  ›  盈灿咨询

独家研究 | 异常数据观察 看小额个贷业务的利润认知盲区

盈灿咨询  · 公众号  ·  · 2017-11-15 09:41

正文

iForest(Isolation Forest)孤立森林算法是无监督学习下的一种重要的异常数据检测算法,在网站流量异常分析、信用卡盗刷行为识别等多个场景下,都有其独特的作用。本文基于iForest算法对某着力于小额个贷业务的P2P网贷平台近期借款数据进行了深入的挖掘。


在了解iForest算法之前,我们先理解两个概念:无监督学习和异常数据。

(1)无监督学习:

无监督学习区别于监督学习,主要指没有标签的数据样本的学习。例如,百度新闻每天会搜集到大量的新闻,但每条新闻并未给定类型,因此需要通过一些算法,结合新闻来源、新闻内容等已知的样本数据对新闻聚类。这一过程就是无监督学习的过程。

(2)异常数据:

异常数据通常具有两个特征:一方面,异常数据与样本中大多数数据在各个维度上差异较大;另一方面,异常数据在整体数据样本中的占比较小。上述特征导致异常数据在作图时较为稀疏,且与大多数正常数据相隔较远,因此我们也将异常数据称为“离群点”。


一、浅谈iForest算法

1、基础思想

先用一个简单的例子来解释iForest算法的基础思想。假设有一组一维数据样本,即每个样本都只有一个特征,例如借款金额。为了更好地说明,我们把所有的数据画在直线坐标轴上(如图1所示)。其中,绿色点A为正常值,橙色点B属于异常值。首先,在借款金额的最小值与最大值之间随机取一个数X1,按照<=X1和>X1将样本分为两组。由于点B所在组仅有一个数据,不需再分,而对于点A所在组,我们从该组数据的最小值与最大值之间随机取一个数X2,同样按<=X2和>X2分成两组。此时点A所在组为<=X1且>X2,其中含有不只一个样本,需要继续细分。可以看到,当随机取到X4以后,点A所在组>X2且<=X4仅含有点A一个样本,划分结束。为了找到点A和点B,我们分别用了4次和1次划分。显然,由于异常值点B离群现象明显,往往能通过更少次数划分就找到。因此,可以利用划分次数作为数据异常程度的重要判断标准。



同理,对于二维数据,我们可以这样划分:假设现有一组二维的借款数据样本,两个维度分别为借款金额和借款利率。其在坐标系上的分布如图2所示。同样,我们需要通过不断的切分来分割出正常点A和离群点B。从图中可以看到,X、Y分别代表从借款金额、借款利率两个维度来切割,数字代表切割顺序。每次切割都从X、Y两种维度中随机选择,切割位置在目标样本点所在组的最大最小值之间随机选择。最终,正常点A通过X1、X2、Y2、X3、X4、Y3共6次切分找到,而异常点B仅通过X1、Y1两次即找到。



对于高维数据,上述方法依然通用,唯一的区别在于对数据的分割不再只是线条、曲面的形式,而是一些无法可视化的超平面。


2、二叉树和森林

在实际应用中,我们常以二叉树的形式来模拟上述分割过程。假设有一组包含m个维度特征、n个样本点的样本数据。随机选择一个维度,并在该维度下的最大值与最小值之间随机取值,将大于该值的样本点划入右分支,其余点纳入左分支。然后在左右两个分支继续重复上述步骤,直到样本中所有值不同的点不可再分,或者二叉树达到限定的最大深度。此时,某个样本点在二叉树中的路径长度越短,越异常。


由于在维度选择和分割值的选择上具有随机性,因此存在异常点在某棵二叉树中深度过深的可能。为了将这种小概率事件对异常值计算结果的影响最小化,我们可以通过多次取样,构建二叉树森林,以平均路径长度作为样本点异常程度的衡量标准。



二、iForest算法在异常借款数据检测中的应用

笔者收集了2507个借款人的14259条借款记录。下文所有计算和论述均基于上述数据完成。

1、数据预处理

上述样本数据已经剔除了所有有缺失数据的样本点。从剩余数据的数据维度看,包括借款人信息(ID、年龄、性别、注册时间)、借款标的数据(金额、期限、利率)、借款情况(成功借款次数、历史累计借款金额、成功借款时间)、还款情况(正常还款次数、逾期还款次数、当前待还金额、历史最大待还)。


由于部分数据难以被算法理解,需要经过一个特征抽象化的过程。其中,男女性别以0-1变量代替;注册时间与成功借款时间换算为注册到成功借款时间间隔。进一步地,我们把注册到成功借款时间间隔和成功借款次数转化为借款频率。


因为不同维度特征变量的范围差异较大,量纲不一,例如借款金额从300元到超过30000元,而借款利率仅在9.5%~22%之间变动,所以需要对所有特征变量进行标准化处理。


从相关性看,历史累计借款金额与当前待还金额、历史最大待还的Pearson相关系数分别达到0.73、0.79,当前待还金额与历史最大待还的Pearson相关系数达到0.93。因此,可以将历史累计借款金额、历史最大待还从特征变量子集中删除。另外,性别与其他特征相关性很弱,而且借款人性别没有明显的取向,也可以删除。



观察剩余特征变量的分布情况,其中,借款期限和借款利率有明显的离散分布的特征。这主要是受到借款平台在实际产品设计上的影响,可能存在与借款人主观意愿相偏离的情况,不适合作为异常数据检测的观察特征。而从剩余特征变量的分布看,均具有明显的左偏特征。此外,在年龄分布上,峰度值仅仅为0.6183,有长尾现象。



2、模型实现及结果分析

设定每次从样本空间中随机抽取256个样本点构建二叉树,重复操作100次,利用iForest算法对上述设定下的剩余特征变量子集作异常检测,得到异常值结果,其分布情况如下图所示(数值越小,异常程度越高,虚线表示异常水平)。可以看到,异常值呈右偏分布,左侧为长尾数据。约10%的样本点异常值在0以下。



在5%的异常水平(即假设在样本数据中有5%的样本点是异常值)下,iForest算法识别出的异常样本点分布如下图所示。其中,x、y、z轴分别代表标准化后的借款频率、借款金额、累计待还金额。显而易见,算法较好地完成了离群点识别任务。








请到「今天看啥」查看全文