金融风险之欺诈分类以及银行防控体系简述

本笔记源于CDA-DSC课程,由常国珍老师主讲。该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营




——————————————————————————————————————————



一、欺诈、损失定义与分类


1、欺诈分类


欺诈与客户虚假信息识别的案例较少,因为这些案例的数据源十分敏感,一般不会流入市场供大众参考。


从英国信用行业欺诈防范体系中看出,绝大多数欺诈可以分为申请欺诈、身份欺诈。

申请欺诈:使用虚假信息申请,较多根源于内部(公司内部员工引发)

身份欺诈:使用伪造的信息或盗用无辜的受害人的信息进行申请(外部)

申请欺诈,一般不是模型问题,而是数据本身存在问题,譬如小城市大学生比例超级高,模型是做不出来的,只能从描述性看出来。中国的欺诈、评级原理不公开,因为一公开,造假的可能性越大,负担不起。



2、损失分类




——————————————————————————————————————————



二、欺诈防控体系


欺诈一般不用什么深入的模型进行拟合,比较看重分析员对业务的了解,从异常值就可以观测出欺诈行为轨迹。同时欺诈较多看重分类模型的召回与准确率两个指标。较多使用SVM来进行建模。

召回率,准确率,排序很准的模型排行:

1、SVM

2、随机森林、决策树


1、银行卡欺诈防控体系





2、检测级别提升路径



其中,规则判断,行为特征分析属于较为简单的分析方法,大多不需要通过建模,通过观测业务数据以及异常行为特征分析即可;

智能模型识别,会用SVM模型来进行识别;

关联分析(有组织的欺诈):社会网络的方法来探究(R语言︱SNA-社会关系网络 R语言实现专题(基础篇)(一))。

-----------------------------------

Logistics建模简述(logit值、sigmoid函数)


——————————————————————————————————


一、logit值的来源


逻辑回归一般将因变量二分类变量的0-1转变为频率[0,1],变成odds(优势比,[0,+∞]),然后log一下成为Logit值([-∞,+∞])


优势比就是:odds=P(y=1)/P(y=0)

logit值:logit=log(odds)


什么是sigmoid函数?

先定义了一个直觉的概念优势比 p/(1-p),p是true时的概率,1-p是false时的概率,对优势比取log,即t=log(p/(1-p))进行值域转换,转到所有实数域。然后反过来求p,最终即可得到sigmoid函数。


sigmoid函数的有趣特点是,自变量是负无穷到正无穷,应变量是0到1。越接近0变化越大。导函数是p(1-p),导函数很有趣。(参考:大话逻辑回归


——————————————————————————————————


二、logit建模



利用logit=Y进行建模,得到Logit之后就可以根据其进行计算概率。Logit=经济学上的效用,效用是一个连续变量,logit模型相当于是效用建模。

所以一般来说,逻辑回归出来的系数都是logit值的系数,需要转化为概率值。


简单的理解可以认为是:

输入是x,输出是y,中间有个临时变量是t。w和b是模型参数。h(t)是属于某个类别的概率,大于0.5认为属于这个类别,即y=1。 linear

sigmoid

简便起见,我们可以认为b始终和一个值为1的w相乘。于是我们把b放入w。模型简化为

linearregressionsimple

这就是逻辑回归的公式,非常简单。

(参考: 大话逻辑回归


——————————————————————————————————


三、logit函数建模阀值设定


在风控模型汇总,logistics阀值的设置根据业务主来判断。一般高信用自动通过,中风险需要审查;风险较大的拒绝借贷。



——————————————————————————————————


四、R语言实现


1、逻辑回归


逻辑回归一般用glm函数中的binomial(link='logit')来建模。


[html]  view plain  copy
  1. lg<-glm(y ~x1,family=binomial(link='logit'))  
  2. summary(lg)  

此时的回归系数的用途只有两个:正负号、显著性.回归系数代表每增加1个单位x,会增加logit值增加0.1个单位,并且正向影响。如果需要知道概率值需要重新计算。


2、逐步回归筛选变量——step


在逻辑回归之上,我们可以用逐步回归方法,对变量进行剔除。

[html]  view plain  copy
  1. lg_ms<-step(lg,direction = "both")  
  2. summary(lg_ms)  


3、验证集预测——predict


[html]  view plain  copy
  1. train$lg_p<-predict(lg_ms, train)   
  2. summary(train$lg_p)  

predict的预测结果也同样是logit值,并不是概率,需要进行再计算


4、计算概率值


[html]  view plain  copy
  1. 1/(1+exp(-1*train$lg_p))  


5、模型验证的方法


作为排序类模型,可以用ROC曲线/AUC值、累积提升曲线、K-S曲线、洛伦兹曲线gini来验证(笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift))。

------------------------------------------------------------------------

信用风险建模中神经网络激活函数与感知器简述


——————————————————————————————————————————


一、信用风险建模中神经网络的应用


申请评分可以将神经网络+逻辑回归联合使用。

《公平信用报告法》制约,强调评分卡的可解释性。所以初始评分(申请评分)一般用回归,回归是解释力度最大的。

神经网络可用于银行行为评级以及不受该法制约监管的业务(P2P)。其次,神经也可以作为申请信用评分的金模型。


金模型的使用:一般会先做一个神经网络,让预测精度(AUC)达到最大时,再用逻辑回归。

建模大致流程:

一批训练集+测试集+一批字段——神经网络建模看AUC——如果额定的AUC在85%,没超过则返回重新筛选训练、测试集以及字段;

超过则,可以后续做逻辑回归。

——笔记︱风控分类模型种类(决策、排序)比较与模型评估体系(ROC/gini/KS/lift)


——————————————————————————————————————————


二、激活函数


神经网络模型中,激活函数是神经网络非线性的根源。


1、sigmoid函数=Logit




其实就是逻辑回归的转化,神经网络=逻辑回归+变量的自动转化

如果激活函数是sigmoid的话,神经网络就是翻版的逻辑回归,只不过会自动转化(适合排序)



2、高斯型函数


适合分类+聚类,识别类(欺诈行业很好,因为行为跟别人不一样,属于异常),在二维空间中就是等高线。


——————————————————————————————————————————


三、感知器


1、单感知器——无隐藏层




Delta规则,w就是权重。很重要

单层感知器,相当于只要了神经网络的输入层以及输出层,比较简单,所以感知器其实相当于线性回归,也叫做线性神经网络,没有隐藏层


2、多层感知器——加入隐藏层




两个隐藏层可以做任何复杂形状域。隐藏层因为属于黑箱,隐藏层越多,会产生过拟合现象(泛化能力不强),并且模型稳健性较差,但是要是模型调试的好,也是一匹“黑马”。

回归出现的所有错误(多重共线性(需进行变量筛选)、缺失值),神经网络都会出现,因为当激活函数为sigmoid时,等同于逻辑回归。


3、BP神经网络——多层感知器


BP神经网络对数据有严格要求,需要做极差标准化。



△,小,就会摆动;大,乱跑;设置多少没有定论


——————————————————————————————————————————


四、BP神经网络-R语言实现——nnet包+AMORE包


BP神经网络需要对数据进行标准化,所以建模之间切记要进行标准化

[html]  view plain  copy
  1. library(nnet)  
  2. help(package="nnet")  
  3. model_nnet<-nnet(y~., linout = F,size = 24decay = 0.01, maxit = 100,trace = F,data = train)   
  4.    #对分类数据预测需要加上y参数   
  5.    #decay就是eta权重的调节,默认为0  
  6.    #linout=F默认,线性回归;T代表逻辑回归(激活函数只有一个sigmoid)  
  7.    #size就是隐藏层的个数,若size=0就是单感知器模型  

linout=F代表线性回归,T代表逻辑回归(激活函数为sigmod);

maxit代表最大循环迭代的次数,该值并不是越大越好,越大过拟合现象更严重,要调节在适当的数量。

size代表隐藏层大小,也跟迭代次数一样,层次越多过拟合现象加重,就会把训练集的很多噪声都拿来做建模,虽然训练集的精度高了,但是测试集的精度反而弱了,就是因为训练集噪声不适合于测试集的噪声。

BP神经网络调节模型精度AUC值的话:一般会选择调整maxit(最大迭代次数)+size(隐藏层大小)来调整最优精度。这里可以自编译一些函数来实现,CDA-DSC课程中就有一个自编译函数来进行选择。但是会耗费大量的运行速度。


AMORE包有待继续深入研究。


————————————————————————————


应用一:报错Error in nnet.default(x, y, w, entropy = TRUE, ...) 


[html]  view plain  copy
  1. Error in nnet.default(x, y, w, entropy = TRUE, ...) :   
  2.   too many (1209) weights  

      这个是因为隐藏层多了之后,运算不了,台式机不能运行那么多,所以要通过调整size的隐藏层个数来看效果如何。

————————————————————————————

支持向量机SVM在金融风险欺诈中应用简述


欺诈一般不用什么深入的模型进行拟合,比较看重分析员对业务的了解,从异常值就可以观测出欺诈行为轨迹。同时欺诈较多看重分类模型的召回与准确率两个指标。较多使用SVM来进行建模。


召回率,准确率,排序很准的模型排行:

1、SVM

2、随机森林、决策树


其中SVM可以像逻辑回归做概率,但是这个概率是点到超平面之间的距离与最长距离之比。概率原理不是特别直接有效,而且解释力度不强。


—— 笔记︱金融风险之欺诈分类以及银行防控体系简述



一、SVM线性可分与不可分



1、线性可分与不可分



线性可分指的就是直线(如左图),用了一条直线来进行划分,实心圆与空心圆,用直线来分类;不可分就是曲线分类,准确性比较高。大部分情况都是线性不可分


2、不可分情况


不可分的情况有两种处理方式:

(1)容错的话,直接用线性,设置容错个数,错了就错了

(2)不容错,做惩罚函数,做多项式转化,变为线性的问题

如果惩罚过多,会造成过拟合的问题,泛化能力不足



二、核函数


SVM的核函数与神经网络的激活函数一致,不同的场景会用到不同的核函数。

其中RBF函数(高斯核函数),较多应用在异常值处理。

————————————————————————————

风控模型中变量粗筛(随机森林party包)+细筛(woe包)

本内容来源于CDA-DSC课程内容,原内容为《第16讲 汽车金融信用违约预测模型案例》。


建立违约预测模型的过程中,变量的筛选尤为重要。需要经历多次的筛选,在课程案例中通过了随机森林进行变量的粗筛,通过WOE转化+决策树模型进行变量细筛。


一、变量粗筛——随机森林模型


与randomForest包不同之处在于,party可以处理缺失值,而这个包可以。

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. library(party)  
  2.    #与randomForest包不同之处在于,party可以处理缺失值,而这个包可以  
  3. set.seed(42)  
  4. crf<-cforest(y~.,control = cforest_unbiased(mtry = 2ntree = 50), data=step2_1)  
  5. varimpt<-data.frame(varimp(crf))  


party包中的随机森林建模函数为cforest函数,

mtry代表在每一棵树的每个节点处随机抽取mtry 个特征,通过计算每个特征蕴含的信息量,特征中选择一个最具有分类能力的特征进行节点分裂。

varimp代表重要性函数。( R语言︱决策树族——随机森林算法)



二、R语言实现WOE转化+变量细筛

R语言中有一个woe包,可以实现WOE转化的同时,通过WOE值进行y~x的决策树建立,应用决策树的重要性来进行变量细筛。

woe包需要从github中下载得到:

[html]  view plain  copy
  1. #library(devtools)  
  2. #install_github("riv","tomasgreif")  

[html]  view plain  copy
  1. library(woe)            
  2. IV<-iv.mult(step2_2,"y",TRUE)   #原理是以Y作为被解释变量,其他作为解释变量,建立决策树模型  
  3. iv.plot.summary(IV)  


summary(step2_3)

不能只看统计量,还要仔细的察看每个变量的取值情况。一般WOE建模数据是经过抽样的,因此可能需要多建模几次,看看不同的变量特征变化,再来进行变量细筛。

————————————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值