用R语言构建神经网络模型评估银行客户信用的好坏

随着银行业务的扩展、P2P的出现、第三方支付提供个人贷、以及X宝等借贷平台的出现,使得个人信用评估在银行、第三方支付、商业借贷平台等上的应用越来越重要。本文利用BP人工神经网络对商业银行针对个人的信用等级评价进行了探讨,建立了神经网络的评价模型,对此做出了实例分析。

个人信用等级评估指标体系 商业银行个人信用等级评估指标体系设立的目的简述为银行通过评估借款人的“3C”,即品德(Character)、能力(Capacity)以及抵押(Collateral),对借款人在债务期满时偿债能力(Ability to pay)和还款意愿(Willingness to pay)等进行预测。根据指标体系设立原则,参照国际标准、国内外银行经验和企业信用等级评估方法,综合考虑商业银行特点及所在地区情况,通过对以往借款人群的考察,以专家判断为基础,可选择4大类21个指标全面评价个人信用等级。

可行性分析 我国个人信用等级评估起步较晚,相关信息残缺,而BP人工神经网络具有强大并行处理机制,高度自学习、自适应能力,内部有大量可调参数,因而使系统灵活性更强。

进行个人信用等级评估与预测时,有些因素带有模糊性,而BP人工神经网络的后天学习能力使之能够随环境的变化而不断学习,能够从未知模式的大量复杂数据中发现规律,与传统的评价方法相比,表现出更强的功能。

BP人工神经网络方法克服了传统分析过程的复杂性及选择适当模型函数形式的困难,它是一种自然的非线性建模过程,无需分清存在何种非线性关系,给建模与分析带来极大的方便。

BP人工神经网络可以再现专家的经验、知识和直觉思维,较好地保证了评估与预测结果的客观性。

模型建立

R语言AMORE包是个前馈神经网络工具包,类似的还有nnet,RSNNS等。AMORE比nnet参数要丰富一些。AMORE用来构建前馈神经网络的函数是newff()。

newff(n.neurons,
      learning.rate.global,
      momentum.global, 
      error.criterium, 
      Stao, 	
      hidden.layer,
      output.layer, 
      method)

其中。n.neurons是个数值向量,包含在每个层的神经元的数目。第一个数是输入神经元的数量,最后是输出神经元的数量,其余的都是隐藏层神经元的数量。

learning.rate.global全局的学习率。

momentum.global全局的动量值(貌似是步长)

error.criterium误差衡量算法,如用误差平方和,选“LMS”。

hidden.layer隐藏层激活函数。

output.layer输出层激活函数。

method 学习方法,如梯度下降。

数据准备

本文数据下载:

german.data-numeric是德国一家银行的数据集,共1000行,前24个变量是用户的各种存款贷款记录,最后一个变量是信用好坏,只有1和2两种情况。

#加载包

library("AMORE")

#读入数据,因为分隔符不确定,所以不写,空格和制表符都行

x <- read.table("D:/data/german.data-numeric",header=F)

#数据最后一行为1和2表示信用好和信用不好,对其进行归一化

x$V25[x$V25 == 1] <- 0

x$V25[x$V25 == 2] <- 1

#把训练数据和测试数据拆开

T <- x$V25

P <- x[,1:24]

#把输入样本归一化 这里使用y=(x-MinValue)/(MaxValue-MinValue)来处理

maxP <- apply(P,2,"max")

minP <- apply(P,2,"min")

P <- t(P)

mm <- maxP-minP

mm[mm ==0] <- 1 #避免除0

P <- (P-minP)/mm

P <- t(P)

#抽样300作为测试集

testc <- sample(1:nrow(x),300,replace=F)

trainP <- P[-testc,]

trainT <- T[-testc]

testP <- P[testc,]

testT <- T[testc]

#创建网络

net <- newff(n.neurons=c(24,24,1), learning.rate.global=1e-4, momentum.global=0.01,error.criterium="LMS", Stao=NA, hidden.layer="tansig", output.layer="purelin", method="ADAPTgdwm")

#训练

model <- train(net, trainP, trainT, error.criterium="LMS", report=TRUE, show.step=100, n.shows=10 )

#测试testO <- sim(model$net, testP)testO[testO <0.5] <- 0testO[testO >= 0.5] <- 1table(testO,testT)

正确率:(187+42)/(187+42+24+47)=0.76,效果还不错!

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

研学社·系统组 | 实时深度学习的推理加速和持续训练

机器之心原创 作者:Yanchen Wang 参与:蒋思源、李亚洲 作者 Yanchen 毕业于普林斯顿大学机器学习方向,现就职于微软Redmond总部,从事大...

2728
来自专栏AI科技评论

学界 | 一窥 ACL 2018 最佳论文

AI 科技评论按:随着定于 7 月 15 日的开会日期逐渐临近,自然语言处理顶会 ACL 2018 继公开了接收论文名单之后,今天也公布了包含 3 篇长论文 与...

865
来自专栏向治洪

[置顶] 机器学习简介及常用算法

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多...

1818
来自专栏向治洪

机器学习

概念 什么是机器学习? 机器学习是英文名称Machine Learning(简称ML)的直译。机器学习涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学...

19710
来自专栏专知

干货:必读机器学习书籍一览表

【导读】转眼之间春节假期已所剩无几,大家是否也开始制定新一年的学习计划?本文就为大家推荐一个机器学习书单,其中大多数可以免费观看,并附上pdf链接。书单内容包括...

33011
来自专栏AI科技评论

独家 | ICML第一天论文精选

ICML第一天的行程即将开始。这一天来自深度学习各个研究领域的专家们将对自己的论文和研究做出演讲。ICML选中的论文主要关注的类型都是基础理论类的研究,如深度学...

3359
来自专栏TensorFlow从0到N

TensorFlow从0到1 - 19 - 回顾

see you soon 《TensorFlow从0到1》就要结束了。 3条主线 这个部分共包含18篇文章,4万余字(简书的严格统计不到4万)。总的来说,它无外...

3544
来自专栏人工智能头条

深度学习和经验主义的胜利

1485
来自专栏AI科技评论

五大顶尖研究院的116篇ICLR 2018录用论文,七大趋势全解读

AI 科技评论按:时间过得好快,Yann LeCun 仿佛刚刚在 Twitter 上感慨 ICLR 2018 的参会人数比 2017 年再次翻倍,而现在 ICL...

946
来自专栏企鹅号快讯

PyTorch一周年战绩总结:是否比TensorFlow来势凶猛?

选自PyTorch 机器之心编译 今天 PyTorch 刚好一周年。自发布以来,由于调试、编译等多方面的优势,它成为 2017 年热度极高的框架之一。本文内容介...

2008

扫码关注云+社区