本笔记源于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。 

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

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

(参考: 大话逻辑回归 )

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

三、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 = 24, decay = 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 
  1. library(party)
  2. #与randomForest包不同之处在于,party可以处理缺失值,而这个包可以
  3. set.seed(42)
  4. crf<-cforest(y~.,control = cforest_unbiased(mtry = 2, ntree = 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建模数据是经过抽样的,因此可能需要多建模几次,看看不同的变量特征变化,再来进行变量细筛。

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

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

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

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...

  2. 数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户...

    原文链接:http://tecdat.cn/?p=23518 项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人).银行拥有不断增长的客户(点击文末" ...

  3. Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户

    最近我们被客户要求撰写关于银行拉新活动的研究报告,包括一些图形和统计输出. 项目背景:银行的主要盈利业务靠的是贷款,这些客户中的大多数是存款大小不等的责任客户(存款人).银行拥有不断增长的客户.该银行 ...

  4. 企业危机分类及公关策略简述

    文 |公关之家    作者:小5 引言:在企业发展的过程中,危机对于企业而言,永远都是最大的挑战.不同的危机根据其性质的不同,会给目标造成不同程度的影响:同样的危机公关,因操作的不同,最终危机带来的结 ...

  5. 大数据分析案例-基于决策树算法构建金融反欺诈分类模型

  6. 笔记︱支持向量机SVM在金融风险欺诈中应用简述

    本笔记源于CDA-DSC课程,由常国珍老师主讲.该训练营第一期为风控主题,培训内容十分紧凑,非常好,推荐:CDA数据科学家训练营 欺诈一般不用什么深入的模型进行拟合,比较看重分析员对业务的了解,从异常 ...

  7. 【不采用】人工智能如何帮助银行反欺诈

    近年来,伴随移动互联网.虚拟现实等技术的飞速发展,银行服务模式日趋多样化.在客户享受灵活便捷服务的同时,银行欺诈风险呈现出更加隐蔽.专业的特点,发展出更多的作案手法和表现形式.传统欺诈检测通常依赖专家 ...

  8. 【采用】人工智能如何帮助银行反欺诈:银行智能欺诈风险预测模型研究

    近年来,伴随移动互联网.虚拟现实等技术的飞速发展,银行服务模式日趋多样化.在客户享受灵活便捷服务的同时,银行欺诈风险呈现出更加隐蔽.专业的特点,发展出更多的作案手法和表现形式.传统欺诈检测通常依赖专家 ...

  9. 某银行信用卡中心——大数据反欺诈应用案例 2017-06-23 10:54 本篇案例为数据猿推出的大型“金融大数据主题策划”活动(查看详情)第一部分的系列案例/征文;感谢 百融金服 的投递 作为整体

    某银行信用卡中心--大数据反欺诈应用案例 2017-06-23 10:54 本篇案例为数据猿推出的大型"金融大数据主题策划"活动(查看详情)第一部分的系列案例/征文:感谢 百融金服 ...

最新文章

  1. 关于TypeError: ‘function‘ object is not subscriptable 报错的解决方法
  2. Allegro 17.4设置中文界面
  3. django models中批量导入数据
  4. leetcode546. 移除盒子(dp)
  5. XOS 详解1: os_s_xxxx.s
  6. hnu实验五 排队喝水
  7. 机房三维(3D)监控系统和机房可视化动力环境监控系统两者有什么特点?
  8. 【Spring第九篇】AOP
  9. python学到什么程度可以找到工作-Python学到什么程度可以面试工作?
  10. 使用pythonping检查设备的连通性并记录可达设备(eNSP模拟器)
  11. 活动 | 腾讯×Nature Research:42问AI与机器人的未来
  12. NLP大牛菲利普•科恩机器翻译权威著作
  13. oracle 函数 if 判断,oracle 判断中文函数
  14. 模糊 K 均值聚类算法
  15. interspeech2021论文集下载地址
  16. 关卡二:Flex伸缩布局
  17. .net c#识别图片二维码 图片处理(Img和BitMap)
  18. CAD删除全部文字(网页版)
  19. (二)什么是IT售前?为什么需要IT售前?
  20. 第七章第二十三题(游戏:储物柜难题)(Game: locker problem)

热门文章

  1. V神合著的《Decentralized Society: Finding Web3’s Soul》论文中有哪些有价值的信息需要我们注意的
  2. SocketTools.NET 11.0 Crack
  3. centos 防火墙关闭/开启
  4. 互联网公司没有中年人
  5. 易语言 取出中间文本
  6. 自动装箱和拆箱简单分析
  7. 安装教程 | Eric7安装与配置
  8. java监听鼠标右键_监听鼠标右键,打开一个菜单
  9. 三子棋小游戏,实现人机对战,电脑可做简单拦截(C语言版)
  10. Flip Gamedfs