金融风控基本知识(iforest,AUC,PSI,KS曲线)

最近,准备总结一些机器学习在金融风控方面的基础知识,毕竟最近自己也入了金融安全的坑。
首先要讲的知识点是一种异常检测算法——Iforest,该算法由周志华老师团队提出《Isolation Forest》,由于其计算复杂度比较低,被大量的运用在工业界中。下面我来介绍一下该算法工作原理:

这个森林的每一棵树都是二叉树的结构,并采用完全随机的方式生成,即在进行叶子节点分裂的时候随机的选取特征,随机选择特征对应的数值进行分裂。当叶子节点中的所有样本属于同一类别或者样本数小于某一预先设定的阈值时就停止分裂。

当一个待检测样本输入该森林之后,会在每一个棵树中留下一个从根节点到叶子节点这样一个路径轨迹,该路径轨迹的长度 h ( x ) h(x) h(x),则所有树的轨迹平均长度则是 E ( h ( x ) ) E(h(x)) E(h(x)) E ( h ( x ) ) E(h(x)) E(h(x))从某种程度上就能反应该样本的异常情况。从定性的角度来说就是平均路径长度越短,其对应样本为异常样本的可能性越大。

由于不同数据集中的特征数量和样本数量都不一样,因此直接根据 E ( h ( x ) ) E(h(x)) E(h(x))绝对值来进行异常样本的区分是不科学的。必须对该值进行某种程度上的归一化,随着样本数n的增长,二叉树最大可能路径长度是以 o ( n ) o(n) o(n)的复杂度在增长,而二叉树的平均路径长度却是以 o l o g ( n ) olog(n) olog(n)的复杂度增长。故直接以 n n n或者 l o g ( n ) log(n) log(n)作为归一化因子都是不太科学的。这里作者借用了BST(二叉搜索树)中的相关研究结论,即该平均路径基本和BST中的不成功平均搜索路径长度基本一致,因此就把BST中的不成功平均搜索路径长度作为归一化因子,该平均搜索路径长度为:
c ( n ) = 2 H ( n − 1 ) − ( 2 ( n − 1 ) / n ) c(n)=2H(n-1)-(2(n-1)/n) c(n)=2H(n1)(2(n1)/n)
H ( x ) = I n ( x ) + 0.5772156649 H(x)=In(x)+0.5772156649 H(x)=In(x)+0.5772156649
那么归一化的方式如下:
s ( x , n ) = 2 − E ( h ( x ) ) c ( n ) s(x,n)=2^{-\frac{E(h(x))}{c(n)}} s(x,n)=2c(n)E(h(x))
可能结果如下:
E ( h ( x ) ) − > c ( n ) , s − > 0.5 E(h(x)) -> c(n),s->0.5 E(h(x))>c(n),s>0.5
E ( h ( x ) ) − > 0 , s − > 1 E(h(x)) -> 0,s->1 E(h(x))>0,s>1
E ( h ( x ) ) − > n − 1 , s − > 0 E(h(x)) -> n-1,s->0 E(h(x))>n1,s>0
结果分析如下:
1 如果该结果很接近1,该结果对应样本肯定是异常值
2 如果样本对应值比0.5小,该样本是很安全的
3 如果所有的样本结果基本都在0.5左右,那么整个数据集应该没有异常值

一种简单的AUC计算方法:
其实AUC的基本概念这里就不多说了,很多地方都有,该值本质是:随机抽取一个正样本和负样本,模型对正样本的预测值高于负样本预测值的概率多少。
下面介绍一种时间复杂度最低的计算方法,假设一共有M个正样本,N个负样本,对这N+M个样本按照模型的预测值进行排序(从小到大)。令最大score对应的sample 的rank为n,第二大score对应sample的rank为n-1,以此类推。然后把所有的正类样本的rank相加,再减去M-1种两个正样本组合的情况。得到的就是所有的样本中有多少对正类样本的score大于负类样本的score,然后再除以M×N。即
A U C = ∑ i ∈ p o s i t i v e c l a s s r a n k i − M ( 1 + M ) / 2 M ∗ N AUC=\frac{\sum_{i \in positive class} rank_i-M(1+M)/2}{M*N} AUC=MNipositiveclassrankiM(1+M)/2

PSI(population stability index)——信贷场景中的样本分布稳定检测手段
针对信贷场景,对某一维特征进行分箱处理之后,如下图所示:
金融风控基本知识(iforest,AUC,PSI,KS曲线)_第1张图片
那么PSI计算公式如下:
P S I = S U M [ ( A c − E x ) ∗ I n ( A c E x ) ] PSI=SUM[(Ac-Ex)*In(\frac{Ac}{Ex})] PSI=SUM[(AcEx)In(ExAc)]
如果小于10%,无需更新模型
10%-25%,检查一下其他度量方式
大于25%,需要更新模型

KS值——信贷场景中常用的衡量指标
提到KS值,就不得不说KS曲线,该曲线和ROC曲线的关系十分密切,都用到了FPR(假正率)和TPR(真正率)这两个指标。
不同的是,ROC曲线用FPR作为横轴,TPR作为纵轴,采用描点法绘制,图中总共是一条线;而KS曲线的横轴则是不同的概率判断阈值,图中一共有两条线,分别代表了FPR值和TPR值,示意图如下所示:
金融风控基本知识(iforest,AUC,PSI,KS曲线)_第2张图片
而KS值则是两条线最大间隔的差值,即 m a x ( T P R − F P R ) max(TPR-FPR) max(TPRFPR)。选择最大间隔对于的横轴概率阈值为最佳概率阈值。

你可能感兴趣的:(金融风控)