用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 条评论
登录 后参与评论

相关文章

来自专栏华章科技

从阿里巴巴笔试试题看数据分析师的职业要求

以下试题是来自阿里巴巴2011年招募实习生的一次笔试题,从笔试题的几个要求我们一起来看看数据分析的职业要求。

1231
来自专栏数据结构与算法

模拟退火算法

1740
来自专栏深度学习自然语言处理

【概率论】基础之概率概论与集合论

概率论对于我们学习机器学习,深度学习等理论,还是自然语言处理,计算机视觉等应用都是很有用的。概率论和其他线性代数,微积分等还是不太一样的,概率这样的问题,就是在...

1343
来自专栏数据科学与人工智能

【数据科学】数据科学家教你用数据模型来恋爱。

男生和女生分别是来自不同星球的科学事实已经众所周知的了.男生们总是认为,女生们都是迷一样的生物,他们的情感状态浮动似乎是以秒单位在变化的,难以理解,更勿论预测了...

2137
来自专栏PPV课数据科学社区

【经典】数据科学家教你用数据模型来恋爱

男生和女生分别是来自不同星球的科学事实已经众所周知的了.男生们总是认为,女生们都是迷一样的生物,他们的情感状态浮动似乎是以秒单位在变化的,难以理解,更勿论预测了...

2574
来自专栏量子位

AI研发新药真有那么神?可能哈佛、斯坦福和阿斯利康实验室都在吹牛

安妮 李林 编译自 Medium 量子位 出品 | 公众号 QbitAI ? 近年来,向往着用AI研发新药的美好愿景,巨头纷纷投下了重注。 制药巨头赛诺菲和AI...

3777
来自专栏牛客网

算法工程师:非科班机器学习工程师养成计划虐心面试实录一点人生经验

这是一篇不太专业的算法工程师面经,希望能给非科班想要从事机器学习工作的同学或学弟学妹一些建议,同时也回馈给予我很大帮助的牛客网。目前拿到的offer有:网易、三...

1K6
来自专栏CSDN技术头条

大数据专家教你用数据模型来找女朋友

男生和女生分别是来自不同星球的科学事实已经众所周知的了.男生们总是认为,女生们都是迷一样的生物,他们的情感状态浮动似乎是以秒单位在变化的,难以理解,更勿论预测了...

2569
来自专栏新智元

【Nature 重磅】谷歌 DeepMind 发布可微分神经计算机 DNC,深度学习推理能力或大幅提升

【新智元导读】谷歌 DeepMind 团队设计了一种叫做可微分神经计算机(DNC)的神经网络模型,结合神经网络与可读写的外部存储器,能够像神经网络那样通过试错或...

3848
来自专栏互联网大杂烩

最优化模型 数据挖掘之优化模型

最短路径问题、网络最大流问题、最小费用最大流问题、最小生成树问题(MST)、旅行商问题(TSP)、图的着色问题。

1282

扫码关注云+社区

领取腾讯云代金券