基于数据挖掘的商业银行个人信用风险评估平台设计与实现大学论文_第1页
基于数据挖掘的商业银行个人信用风险评估平台设计与实现大学论文_第2页
基于数据挖掘的商业银行个人信用风险评估平台设计与实现大学论文_第3页
基于数据挖掘的商业银行个人信用风险评估平台设计与实现大学论文_第4页
基于数据挖掘的商业银行个人信用风险评估平台设计与实现大学论文_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计(论文)论文题目:基于数据挖掘的商业银行个人信用风险评估平台设计与实现学生姓名:学生学号:专业班级:学院名称:指导老师:学院院长:2016年05月27日基于数据挖掘的商业银行个人信用风险评估平台设计与实现摘要计算机技术和信息技术的不断发展,带给我们便利的同时也带来一系列问题,其中一个问题是数据量的爆炸式增长以及数据之间的关系愈发复杂,如何对这些海量的数据进行处理,发掘隐藏在数据中潜在的理论价值和实际价值也成为生活中各个领域关注的焦点。随着我国经济的不断发展,城市和农村居民的收入和消费水平有着显著提升,个人信贷业务已经成为商业银行主营业务之一,但目前我国商业银行在个人信用风险评估方面存在着不足。因此,研究如何利用数据挖掘技术从银行现有的客户数据中分析客户的信用风险,具有重要的理论价值和实际意义。本文首先对数据挖掘的概念、发展现状进行了介绍。其次对数据挖掘的算法进行了介绍,分析了本系统会用到的数据挖掘的算法。然后,结合商业银行在客户信用风险评估方面遇到的问题进行了需求分析。在此基础上,提出了基于BP神经网络以及决策树算法的商业银行个人信用风险评估模型,为商业银行个人信用风险评估提供了可行的解决方案。关键词:数据挖掘;BP神经网络;决策树;信用风险DesignandImplementationofCommercialBanksCreditRiskAssessmentBasedonDataMiningAbstractThedevelopmentofcomputertechnologyandinformationtechnologybringusconvenience,butalsobroughtaseriesofproblems,oneoftheproblemsistherelationshipbetweentheamountofdataaswellastheexplosivegrowthofdatabetweenthemoreandmorecomplex,andhowthesemassivedataprocessingdiscoverhiddenpotentialdatatheoreticvalueandpracticalvaluehasbecomethefocusofattentioninallareasoflife.AsChina'seconomycontinuestodevelop,incomeandconsumptionlevelofurbanandruralresidentshassignificantlyimproved,consumercreditbusinesshasbecomeoneofthemainbusinessofcommercialbanks,commercialbanksinChinabutthereisalackofpersonalcreditriskassessment.Therefore,studyinghowtousedataminingtechniquestoanalyzecustomercreditriskfromthebank'sexistingcustomerdata,hasimportanttheoreticalandpracticalsignificance.Firstly,theconcept,developmentstatusdataminingareintroduced.Secondly,thedataminingalgorithmsareintroduced,weanalyzedthesystemwillusedataminingalgorithms.Then,combinedwithproblemsencounteredbycommercialbanksincustomercreditriskassessmentneedsanalysis.Onthisbasis,theproposedindividualcreditriskassessmentmodelbasedonBPneuralnetworkanddecisiontreealgorithmbasedcommercialbank,andtheproposedmodelhasbeenimprovedandvalidatedcommercialbankpersonalcreditriskprovidesafeasiblesolutionprogramevaluation.KeyWords:Datamining;BPneuralnetwork;decisiontree;CreditRisk目录TOC\o"1-3"\h\u31860第1章绪论 1304121.1研究背景和研究意义 1283011.1.1研究背景 1234511.1.2研究意义 3157281.2国内外研究综述 4274321.2.1数据挖掘研究现状 4158191.2.2商业银行信用风险研究现状 6292291.3论文的主要工作和内容结构 720757第2章数据挖掘算法及相关技术 9320992.1数据挖掘的概念 996842.2数据挖掘的过程 9192372.3数据挖掘的常用算法 10192592.3.1人工神经网络 11222842.3.2决策树 11150532.3.3遗传算法 12142402.3.4近邻算法 13204402.3.5k-means算法 1316122.4小结 149224第3章基于BP神经网络算法的个人信用风险评估 1531303.1神经网络的学习机理和机构 15167443.1.1感知器的学习结构 157033.1.2梯度下降法算法 17239413.1.3反向传播(BP)算法 19277773.2实验数据的结构及预处理 22119223.2.1数据预处理 25298263.2.2数据指标选取 26129853.3基于BP神经网络的信用风险评估方法模型 29273063.3.1网络的构建及训练 29171603.3.2模型测试结果 30290703.4小结 3322159第4章基于决策树算法的个人信用风险评估 34203554.1决策树算法概述 34163034.1.1ID3算法 3495404.1.2C4.5算法与C5.0算法 37155334.2基于C5.0算法的决策树方法个人信用风险评估模型 3978494.2.1数据采集 39158724.2.2数据变换 4057044.2.3决策树的构建 4361364.2.4评估模型及模型优化 48110034.3小结 5017070第5章基于数据挖掘的个人信用风险评估系统的实现 51324035.1开发环境的搭建 5187945.1.1R语言开发环境搭建 51203025.1.2ShinyServer安装与配置 52254805.2模块关键功能实现 53270765.2.1基于BP神经网络算法评估客户信用风险的实现 5445475.2.2基于决策树络算法评估客户信用风险的实现 5680355.3小结 581186总结与展望 593511致谢 6024173参考文献 61绪论本章首先介绍了以数据挖掘算法和技术为基础的商业银行个人信用风险分析的研究背景和研究意义。随着社会经济的发展和国民消费水平及观念的提升,个人信贷市场已经成为银行业的主营业务之一,银行的客户数据量规模十分庞大,用数据挖掘技术从这些海量数据中发现科学有效的个人信用风险评估和预测模型具有重要的理论意义和实际价值。1.1研究背景和研究意义2010年9月12日,国际清算银行(BIS)的巴塞尔银行业条例和监督委员会的常设委员会——“巴塞尔委员会”宣布,各方代表就《巴塞尔协议III》的内容达成一致。《巴塞尔协议III》将商业银行的风险分为信用风险、市场风险和操作风险,其中信用风险是银行面临的主要风险[1]。而个人信贷风险又是银行信用风险中的主要组成部分,银行具有高水平的信用风险管理制度决定了其稳定的运行,因此,为满足银行自身运营要求和提高自身风险管理水平,商业银行加快建设个人信贷风险评估系统具有重要的现实意义。1.1.1研究背景从风险管理控制来说,金融体系的风险管理有着十分悠久的历史,随着社会经济以及全球经济一体化的发展,在风险管理方面,其理论和实践都取得了很大进展。国外对金融风险管理比较深入,近几年发现了层出不穷的各种理论和模型,例如:资本资产定价理论、套利定价理论、CreditMetrics模型、KVM模型等[2]。在实践中这些理论和模型取得了巨大成功,因而刺激了西方金融市场的发展,反过来,西方金融市场的发展又对金融风险理论研究提出了新的要求。纵观世界银行业的发展,20世纪70年代,银行的经营环境相对比较稳定,其稳定的原因是多方面的。其中,法律监管制度对银行业的稳定发展起到了决定性的作用,那时,银行业的主要经营业务比较单一,仅限于存款贷款业务,外部竞争有限,银行具有稳定的高额的利润。法律监管关注的重点是银行业的安全发展和对货币创造能力的控制,并且法律在监管银行业经营范围的同时,也从各个反面大大降低了银行业所承担的风险。从20世纪70年代至今,银行业掀起了深刻的变革浪潮,在推动银行业变革的因素中,有三个因素显得尤为重要:第一,金融市场职能的日益膨胀,由于国际资本市场在深度和广度上的快速发展,一大部分企业选择发行股票和债券在市场上筹措企业的发展资金,这导致了金融非中介化的快速发展,这些变化给金融市场的参与者,尤其是银行业,带来了新的机遇,机遇与挑战并存,因此也带来了新的挑战。第二,金融管制的放松,随着金融市场的不断发展与金融制度的自我完善,一些旧的金融管制制度开始改变甚至消失。原有监管制度的改编和消失,使得政府或者金融监管部门不能像过去那样利用分业管理制度来控制风险行为[3]。因此,这些监管部门开始重新制定能够保障金融业安全的监管规则。新的规则主要是由国际清算银行负责制定,然后各国的政府将其应用到国内金融业中去。第三,金融行业竞争日益加剧。金融管制的放松大大拓宽了银行所能提供的产品和服务的范围。各种新产品,比如金融衍生工具和期权、期货等的产生,传统的商业银行开始积极探索新的市场机会,研究开发新的产品的服务,非传统业务的比重迅速增加。增值性服务,比如交易咨询、资产并购、项目融资、信用卡、衍生工具等获得飞速的发展。通过涉足新的领域和开发新的金融产品,银行业需要承担新类型的风险。银行业的变革使得银行业飞速的发展,但同时也带来了新的风险。风险的增加是由新竞争出现、产品的创新、银行主营业务的转型和创新、市场波动的加剧以及金融机构业务范围限制的解除带来的。所以随着银行业的发展,银行业需要承担更多的风险,风险管理显得尤为重要。从数据挖掘技术来说,数据挖掘起始于20世纪下半叶,是在当时多个学科发展的基础上发展起来的。数据库技术日益发展,大大提高了数据的存储与处理能力。但是与之而来的是数据的不断积累,庞大的数据使得传统的增删改查功能无法满足人们对数据的需求,急因需要发展更好的数据处理技术去挖掘庞大数据背后隐藏的信息。与此同时,与此同时,进入21世纪以来,人工智能技术进入飞速发展阶段,Google公司的AlphaGo产品等标志着人工智能革命的兴起,从此机器学习将应用到现实领域。因此,人们将两者结合起来,存储数据使用数据库管理系统,使用数据挖掘技术进行数据分析,并且尝试挖掘隐藏在数据背后的知识[4]。这两者的结合促生了一门新的学科,即数据库中的知识发现(KnowledgeDiscoveryinDatabases,KDD)。而数据挖掘(DataMining)则是知识发现(KDD)的核心部分,它指的是从数据集合中自动抽取隐藏在数据中的那些有用信息的非平凡过程,进入21世纪,数据挖掘已经成为一门比较成熟的交叉学科,并且数据挖掘技术也伴随着信息技术的发展日益成熟起来。将数据挖掘技术应用到银行信用风险分析成为了可能。1.1.2研究意义信用风险是最古老的风险,而且在潜在损失的规模方面也许是最重要的风险。目前,信用风险的评价正沿着几个方向发展:第一,对贷款组合信用风险的评价;第二,对市场工具信用风险的评价;第三,对信用风险的VAR值的计算;第四,贷款组合管理。信用风险,是指因借款人发生违约或借款人信用等级下降产生损失的风险[5]。风险的“量”是贷款的余额,风险的“质”是指发生违约的可能性和在违约发生时减少损失的担保措施。本篇研究的商业银行个人信用风险主要指的是客户的违约风险。一般使用商业银行一定时期内客户违约发生的概率来进行衡量违约风险的。借款人的信用等级决定商业银行客户的违约风险取,而商业银行客户的信用等级受多个因素的影响,如客户的工作情况、居住环境、收入水平等。不能直接对违约概率进行测量,但可以用客户以往的信用历史数据多客户的违约概率进行评估。数据挖掘是指从大量的资料中自动搜索隐藏于其中的有着特殊关联性的信息的过程。在商业银行的计算机存储中,存在未使用的海量数据并且它们还在快速增长,这些数据就像待挖掘的金矿。数据挖掘技术可以使我们很容易的从海量数据中提取出可以表示成规则逻辑或者可视化的数据模型,比传统意义上的统计学更加以人为本[6]。对商业银行而言,数据挖掘的目标,是使商业银行更了解客户,以增进它在信贷、销售、顾客服务营运上的表现,查觉无法直接从数据上看得出来的潜在规则或行为模式。1.2国内外研究综述自从提出数据挖掘的概念以来,国内外的许多厂商相继推出了自己的数据挖掘相关产品,例如IBMIntelligentMiner、SPSSClementine、MSMiner等。随着厂商不断推出自己的产品,数据挖掘的服务质量和可靠性越来越受到重视。目前,国内外的厂商和学者都已经对此展开了研究,下面对它们的国内外现状分别进行研究。1.2.1数据挖掘研究现状近年来,数据库技术领域中的重要研究领域为知识发现(KDD)与DM。第十一届国际人工智能会议于1989年8月在国底特律市召开,在这次大会上参会者正式提出了知识发现(KDD)一词[7]。随着计算机技术的日益发展,数据挖掘技术的研究也不断突破,目前已经取得了丰硕的成果。现在主要是从三个方面:理论和技术以及应用对知识发现(KDD)进行研究。国内外大部分学者目前的研究方法是采用多种方法与理论并行。众多计算机行业的公司以及高校研究所等研究机构十分重视数据挖掘技术的研究,Google和微软等已经在全球范围内开设了研究中心。无可否认的是美国是全世界数据挖掘技术发展最繁荣的国家,并占据着数据挖掘技术研究的核心位置[8]。随着数据量的指数级增加,各个行业的商业公司以及政府机构等对数据挖掘软件的市场需求量也飞速增加,因此众多计算机行业的国际知名公司都纷纷加入到了数据挖掘软件开发研究的行列中来,目前数据挖掘软件市场上已经存在一大批比较成熟、先是实用价值比较高的优秀产品。下面列举的是目前为止比较主流的数据挖掘系统:IBMIntelligentMiner:IBMIntelligentMiner的主要功能包含展现数据库的挖掘过程,能够统计函数和查看函数并解释挖掘结果,挖掘结果可视化展示等。IBMIntelligentMiner能够从企业的海量数据集中检验并提取高价值的知识,包括企业的交易数据,信用卡,ATM(AutomaticTellerMachine),电子商务应用,或呼叫中心等。数据分析专家和商业领域专家能够发现隐藏在海量数据背后的其他传统分析工具不能发现的知识。IBMIntelligentMiner不但提供了实用的数据挖掘技术和工具来支持知识发现过程,而且还提供了数据挖掘应用服务支持与数据挖掘急速定制应用的发展。(2)KnowledgeStudio:KnowledgeStudio提供了先进的预测建模功能,包括先进的记分卡的发展,线性和Logistic回归,决策树,神经网络和无监督学习技术,如聚类分析和多因子分析。(3)CognosScenario:CognosScenario是一种数据挖掘结果高度可视化的一种工具,该软件能够在很短的响应时间内对数据进行高效的挖掘与分析。(4)IBMSPSSModeler:IBMSPSSModeler是一个广泛的预测性分析平台,旨在智能预测由个人、组、系统和企业作出的决定。通过提供一系列先进的算法以及包括文本分析,实体分析,决策管理和优化技术,SPSSModeler可帮助企业与个人始终如一地做出正确的决定。除这些工具之外,Unica公司开发的AffiniumModel,美国Insightful公司研究开发的I-Miner,加拿大SimonFraser大学研究开发的DBMiner等也是常用的市场占有率比较高的数据挖掘软件。在数据挖掘技术这一领域,国内公司和研究机构对数据挖掘技术的研究与国外相比起步比较迟并且尚不成熟,目前正处于比较初级的发展阶段[9]。国内数据挖掘技术的发展主要有:研究并构建模糊系统知识模型,研究并构建模糊系统辨识方法;在研究分类技术中,尝试构建其集合理论体系,能够让其实现日益增长的大量数据的挖掘处理;将模糊集理论以及粗糙集理论两个理论相结合来研究知识发现;研究并开发智能的专家系统;研究并开发中文文本挖掘的实现技术以及其理论模型;利用数据挖掘技术概念来进行文本的挖掘。我国也有不少新兴的数据挖掘软件:(1)DMiner:DMiner是由复旦德门软件公司开发的一个数据挖掘系统,这个系统是基于数据仓库的对企业的经营、客户和财务等多个数据源进行数据挖掘。业务作为德门数据仓库实施方案的需求重点,设计在技术领先与开放标准的基础之上,并且能与数据仓库的解决方案能够融合,为现代企业提供一个开放的、可靠的与可扩展性的和高性能决策支持系统。(2)MSMiner:MSMiner主要包括任务处理引擎和数据挖掘任务模型编辑两个模块,用户在任务模型编辑模块可以使用一种可视化的方法来选择算法和数据源,然后使用选择的数据挖掘算法和数据源来构建合适的模型。解释执行各个步骤以及对数据挖掘任务则由任务处理引擎来负责处理,然后得到可视化的数据挖掘结果。数据挖掘结果经过评估后就可以存入数据仓库然后以报表和可视化方式输出。目前国内的数据挖掘技术产业相对国外来说还处于起步阶段,从事数据挖掘技术研究的人员主要集中在各大高校和研究所以及互联网公司的研发中心,大多数关于数据挖掘技术研究项目的资金是由政府提供,数据挖掘技术的相关算法和理论方面为其主要的研究方向[10]。开发研究的数据挖掘相关的软件产品暂时没有得到国际主流市场的认可。1.2.2商业银行信用风险研究现状各国对商业银行信用风险的管理不尽相同,相对来说发达国家的风险管理比较成熟,发展中国家的风险管理则相对落后,水平有较大差异。但各国监管当局和商业银行本身都在试图通过实施外部监管和内部评级等方法来提高信用风险管理的能力这一点是一致的。因此,研究国际活跃银行的风险管理机制,提高我国风险管理水平,是一个非常重要的现实课题。随着金融市场的不断发展,金融衍生品的日益更新,金融风险程度的不断提高,促进了银行业风险管理及风险防范方法的不断完善。1.内部评级方法。内部评级法是国际清算银行颁布的《新巴塞尔资本协议》中银行信用风险部分的核心内容。内部评级法是现在国际清算银行对银行业风险管理和风险防范的一个重要的手段。内部评级法对特定贷款进行信用评级的一个办法,其主要依据是根据借款人如果不能正常履行还款责任而对银行造成的损失风险[11]。内部评级方法的风险评级是商业银行评估信贷风险的重要指标,因此风险评级多用于商业银行信贷的风险管理,风险评级包含对贷款受理的评估、评估贷款组合和撰写风险管理报告,对存款准备金充足性进行分析,商业银行利润及信贷利率定价分析,作为风险管理的重要参数来构建信贷组合的风险管理模型等。传统的风险管理的缺点是外部评级机构通常不能得到的客户信息,从而很难对客户进行评估,而内部评级方法克服了这一缺点,从而商业银行不会过多地依赖外部信用评级机构对客户信贷风险的评估。2.VaR风险度量方法。VaR从数学统计的意义上来讲是一个数字,VaR指商业银行或者金融机构等面临市场波动时其在风险状态的价值。即在指定的置信水平和特定的时间段内,计算出的预期的最大损失的绝对值或者相对值[12]。持有期的长短、置信区间的大小以及观察期间的长短这三个系数是构建一个资产组合的VaR值的模型必须首先确定的三个系数。VaR主要应用于金融风险控制。目前已有超过一千家的银行和保险公司以及投资基金等公司采用构建VaR模型来对风险管理进行防范和管理。每个交易员或交易单位利用VaR方法都能进行风险控制以便确切地了解他们进行的金融交易有多大风险,还能够为每个交易员或交易单位设置一个VaR阀值来预防度较大金融风险的出现。商业银行等金融机构如果执行严格的VaR管理也许可以避开重大亏损。3.投资组合管理。投资组合管理是指投资管理人以实现分散风险、提高效率的投资目的按照资产的投资组合理论对资产进行多元化管理的一种风险管理手段[13]。投资组合理论和资本资产定价模型以及APT模型等理论构成了现代投资组合理论。它们的发展使现代投资管理日益朝着系统化、科学化和组合化的方向发展并极大地改变了过去主要依赖传统投资管理实践的手段。由于我国商业银行风险管理发展较晚,存在着商业银行重报表数据轻实践,信贷审批流程不合理,信贷监管环节责任不明确,大部分商业银行的贷款审批权利还是由银行行长一人掌控,商业银行对企业的评估没有公开透明化,甚至存在内幕交易,评估后的结果也是只用本行内部信贷额度的确立,没有对其他金融机构或者社会进行公开等缺点,我国商业银行存在的这些不足都反映出我国银行业信贷风险管理手段落后以及信用风险管理体制不健全[14]。并且我国商业银行通常是负责信贷风险管理的人员主要是信贷部门的,信贷人员对贷款的风险状况进行评估后定期向其上级汇报,这种传统的评估模式存在很大漏洞,完全不能满足商业银行对风险控制要求的时效性;并且在商业银行中信用风险决策制度制定的不合理,很多商业银行的信贷人员同时负责信贷前调查和信贷审批等本应遵守职位分离原则的多个职位,这种身兼数职起不到互相监督互相补充的作用从而使得风险漏洞出现时,信贷负责人员由于各种原因不会及时对风险进行管控制,可能会导致信贷违约的产生。1.3论文的主要工作和内容结构本文内容分为五章,主要的工作如下所述:第1章为绪论,主要介绍本课题的应用背景、国内外研究现状以及本系统的研究意义,以及论文的组织结构。第2章为数据挖掘算法及相关技术,主要对数据挖掘算法做了介绍,并且对系统要用到的数据挖掘技术做了梳理,并分别对每项技术做了详细介绍,阐明各项技术选择的重要性。第3章为基于BP神经网络算法的商业银行客户信用风险评估,首先介绍了BP神经网络算法的基本原理,然后介绍了如何用BP神经网络算法实现对商业银行客户信用风险进行评估。第4章为基于决策树算法的商业银行客户信用风险评估,首先介绍了决策树算法的基本原理,然后介绍了如何用决策树算法实现对商业银行客户信用风险进行评估。第5章为基于数据挖掘技术的商业银行客户信用风险评估系统的实现,本章主要从软件的实际出发,依据第3章和第4章的算法设计,介绍了基于数据挖掘技术的商业银行客户信用风险评估系统的主要模块的具体实现方法与成果。数据挖掘算法及相关技术数据挖掘是一种通过分析海量数据来揭示数据之间的关系、趋势和模式的技术,是一门融合了人工智能,数据库技术,模式识别,机器学习,数据可视化与统计学等多个领域和技术的交叉性学科,本章首先是对数据挖掘算法及相关技术进行了介绍,然后对常用的数据挖掘算法进行了比较。2.1数据挖掘的概念计算机技术的飞速发展显著的增强了社会各个领域的产生和采集数据的能力,我们生活的每时每刻都会产生海量的数据。数据的爆炸性增长激励数据分析技术的发展,以帮助我们方便智能的从大量数据中发现对我们有价值的信息和知识。这种技术的发展导致一个被称为数据挖掘技术的计算机前沿学科的产生。数据挖掘通常被成为数据中的知识发现(KDD),是一种方便高效自动地提取知识的模式,这些知识隐藏在大型数据库,数据仓库,Web,其他大量信息库或者数据流中。数据挖掘作为一个学术领域,横跨多个学科,涵盖了统计学、数学、机器学习和数据库等,如图2.1-1所示。可以用多种方法定义。术语“数据挖掘”本身实际意义上也不能完全表达其主要含义,数据挖掘命名为“从数据中挖掘知识”更为贴切准确。数据挖掘在广义上的定义是:数据挖掘指的是从海量数据中挖掘知识与有趣模式的一个过程。通常情况下数据源包括Web、数据仓库、数据库、以及其他的数据存储库或者传递入系统的动态数据[15]。2.2数据挖掘的过程数据挖掘通常需要有业务理解、数据采集、数据准备、建模、结果评估、部署6个步骤。业务理解:从业务角度来看对数据挖掘进行了解项目的目标和要求,然后将这些知识转化数据挖掘问题的定义和设计,以实现目标的初步计划。数据采集:开始收集数据和熟悉数据,找出数据存在的问题,及时发现有用的数据,或者检测有趣的子集,以形成对隐藏信息的假设。图2.1-1数据挖掘及相关领域数据准备:包括从初始的原始数据构建最终的数据集(被送入建模工具的数据)所需的所有步骤。任务包括改造和建模的数据清理。建模:选择和应用各种建模技术,用校准工具参数确立最佳值。通常情况下,存在针对相同数据挖掘问题的几种不同技术。某些技术具有数据形式上的具体要求。因此,需要对数据进行处理。结果评估:彻底评估模型,并审查执行构建模型,以确定它正确地实现业务目标的步骤。确定是否存在还没有被充分考虑一些重要的问题。在此阶段结束时,达到对使用的数据挖掘结果的展示。部署:组织和显示数据挖掘的结果。部署可以为生成报告或执行一个可重复的数据挖掘过程。2.3数据挖掘的常用算法聚类、回归分析与分类、偏差分析、Web页挖掘和关联规则以及变化等方法是采用数据挖掘算法进行建模等经常的方法,它们分别从不同的角度对数据进行挖掘。常用的数据挖掘技术算法有:人工神经网络、决策树、遗传算法、近邻算法、粗糙集方法、模糊集方法、统计分析方法和规则推导等。2.3.1人工神经网络人工神经网络算法模拟生物神经网络,是一类模式匹配算法。人工神经网络算法反映人脑结构及功能的一种抽象数学模型,一个人工神经网络是由大量神经元节点互连而成的复杂网络,用以模拟人类发现知识和进行知识表示与存储以及利用知识进行推理的行为[16]。通常用于解决分类和回归问题。人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。重要的人工神经网络算法包括:感知器神经网络(PerceptronNeuralNetwork),反向传递(BackPropagation),Hopfield网络,自组织映射(Self-OrganizingMap,SOM)。学习矢量量化(LearningVectorQuantization,LVQ)等。2.3.2决策树决策树是对给定的数据按照一系列规则进行分类的过程。直观看上去,决策树分类器就像判断模块和终止块组成的流程图,终止块表示分类结果(也就是树的叶子)。判断模块表示对一个特征取值的判断(该特征有几个值,判断模块就有几个分支)。如果不考虑效率等,那么样本所有特征的判断级联起来终会将某一个样本分到一个类终止块上。实际上,样本所有特征中有一些特征在分类时起到决定性作用,决策树的构造过程就是找到这些具有决定性作用的特征,根据其决定性程度来构造一个倒立的树--决定性作用最大的那个特征作为根节点,然后递归找到各分支下子数据集中次大的决定性特征,直至子数据集中所有数据都属于同一类[17]。所以,构造决策树的过程本质上就是根据数据特征将数据集分类的递归过程,需要确定的第一个问题就是当前数据集上哪个特征在划分数据分类时起决定性作用。为了得到出理想的结果并找到决定性的特征值,可以对给定数据集中包含的特征逐个进行评估,然后找到使数据集分类最理想的特征。找到这些特征并根据找到的特征值进行分类使得原始数据集被划分为几个数据子集。需要重复划分数据子集的过程当数据子集内的数据不属于同一类型时。采用相同的方法来划分数据子集的直到一个数据子集内(叶子节点)具有相同类型的数据。2.3.3遗传算法遗传算法是机器学习的模型,遗传算法是借鉴自然界自然遗传和选择机制的随机化的一种搜索算法。遗传算法是解决其鲜为人知的一个问题的最佳途径之一,是一个非常普遍的算法,因此会在任何搜索空间工作[18]。遗传算法对给定的问题使用选择和进化的原则,产生了多种解决方案。遗传算法在每一次的迭代过程中都会有一个备选的解,利用遗传算子按某种指标从所有的解中选取较优的个体然后进行重新组合,重新组合后会产生新的备选解,一直重复此过程直到满足某种收敛指标。GA的组成:(1)编码(产生初始种群):基因在一定能够意义上包含了它所代表的问题的解。基因的编码方式有很多,这也取决于要解决的问题本身。常见的编码方式有二进制编码、互换编码、属性编码等。适应度函数:适应度函数是遗传算法中对个体的值的评估,解的质量和适应度函数的值成正比[19]。适应度函数是遗传算法中进行自然选择的唯一标准,适应度函数的制定应该结合求解的具体问题本身的实际要求而确定。遗传算子:遗传算法中对个体进行筛选的方法是通过选择计算来完成的:适应度和被遗传到下一代的概率成正比,即一个个体的适应度越高,则这个个体被遗传到下一代的概率越大,反之,一个个体的适应度越低则说明该个体被遗传到下一代的概率越低。从初代群体中选取一些个体遗传到下一代群体是通过选择操作实现的。运行参数:GA运行时选择的参数应该视解决的具体问题而定,到目前为止,还没有一个适用于GA所有应用领域的关于算法参数的理论。2.3.4近邻算法K最近邻(k-NearestNeighbor,KNN)分类算法,是最简单的机器学习算法之一同时也是理论上比较完善的算法。K最近邻分类算法的思想是通过计算新数据与训练数据特征值之间的距离,根据计算出的距离选取K(K>=1)个距离最近的邻居进行分类[20]。KNN算法中选出的邻居必须是已经得到精确分类的对象。该方法根据样本数据中最邻近的一个或多个样本的类别去划分待分样本所属。假设给定的训练数据集的很大,K-近邻算法必须使用大量的存储空间来保存全部数据集。同时,K-近邻算法必须计算数据集中的每个数据的距离值,当数据集比较大时,K-近邻算法计算每个数据的距离值可能非常耗时。另一个不足是它没有办法给出数据的任何基础结构信息,因此也没有方法了解平均样本具有什么特征。2.3.5k-means算法k-means算法是一个把n的对象根据他们的属性分为k(k<n)个分割的聚类算法。k平均聚类发明于1956年,该算法最常见的形式是采用被称为劳埃德算法(Lloydalgorithm)的迭代式改进探索法[21]。劳埃德算法和k平均通常是紧密联系的,但是在实际应用中,劳埃德算法是解决k平均问题的启发式法则,对于某些起始点和重心的组合,劳埃德算法可能实际上收敛于错误的结果(上面函数中存在的不同的最优解)虽然存在变异,但是劳埃德算法仍旧保持流行,因为它在实际中收敛非常快。实际上,观察发现迭代次数远远少于点的数量。然而最近,DavidArthur和SergeiVassilvitskii提出存在特定的点集使得k平均算法花费超多项式时间达到收敛。近似的k平均算法已经被设计用于原始数据子集的计算。k平均算法从算法的表现上来说并不保证肯定能够得到对问题的全局最优解,初始化的分组通常会决定最终解的质量。由于k平均算法的计算速度比较迅速,所以通常情况下经常选择使用多次k平均算法来得到对问题的全局最优解。k平均算法的一个缺点是分组的数目,因为一般情况下分组的数目k是作为输入参数的,所以不科学的输入参数k会返回和实际偏差较大的结果。此外,k平均算法基于均方误差是计算群组分散度的最佳参数这个假设。2.4小结主要对数据挖掘技术做了介绍,并且对系统要用到的数据挖掘技术做了说明,并分别对每项技术做了详细介绍,阐明各项技术选择的重要性。基于BP神经网络算法的个人信用风险评估本章主要介绍基于BP神经网络算法的商业银行客户信用风险评估,首先介绍了BP神经网络算法的基本原理,然后介绍了如何用BP神经网络算法实现对商业银行客户信用风险进行评估。3.1神经网络的学习机理和机构在神经网络算法中占有举足轻重地位的是学习方法。随着数据挖掘及神经网络算法的不断发展,学习算法也随之不断更新进步。自从上个世纪40年代Hebb提出了被称为Hebb定律”的突触学习的模型之后,众多学者和专家在此基础上相继提出了多种满足不同需求的学习算法。在这众多的学习算法中,影响力比较大且在实际应用价值比较高的当属Rumelhart等在上个世纪90年代提出的误差反向传播(errorBackPropagation)算法。3.1.1感知器的学习结构神经网络中最经典的学习方法是感知器的学习,目前感知器的学习在控制上应用的是多层前馈网络,学习采用的算法是误差反向传播(errorBackPropagation)算法,误差反向传播(BP)算法是一个有教师的学习算法。图3.1-1表示有教师的学习算法。有教师的学习算法由输入部、训练部以及输出部三个部分组成。将输入样本X输入输入部并由输入部传递给训练部,神经网络的权系数W是由训练部负责调整的,神经网络的权系数W调整完成后传递给输出部并由输出部输出计算的结果。神经网络的权系数W是由教师信号与实际输出的结果进行比较得出的误差来确定的。图3.1-2表示学习机构的结构。在图3.1-2中,Xl,X2,…,Xn这些表示输入样本信号,而神经网络中权系数用W1,W2,…,Wn来表示。图3.1-1神经网络学习系统框架图Xi作为输入样本的信号可以用“0”或“1”离散的值来表示。u通过在输入样本信号中神经网络中权系数Wn的作用下产生输出结果∑WiXi,如公式3.1-1所示:u=∑WiXi=W1X1+W2X2+…+WnXn3.1-1图3.1-2学习机构误差信号e的产生是把期望输出信号Y(t)和u进行比较而产生的。神经网络的学习过程要重复很多次(甚至达万次级)因而是比较费时的。耗时的主要因素在于一个多参数修改系统来确定神经网络的权系数W。因此提高神经网络的学习速度并且尽可能减少神经网络的学习重复次数是是神经网络算法中的关键所在。3.1.2梯度下降法算法梯度下降法算法是最优化算法的一种,通常也被称为最速下降法。梯度下降法一般是基于这样的观察:如果实值函数F(x)在点a处可微且有定义,那么函数F(x)在a点沿着梯度相反的方向-F(a)下降最快[22]。由于反向传播算法需要使用梯度下降法来计算平方误差函数对网络权重的导数。先假设对于一个输出神经元平方误差函数如公式3.1-2所示。3.1-2E为神经元的平方误差。t为给定数据样本的训练样本的目标输出。y为BP神经网络输出神经元的输出的实际结果。因为要抵消微分出来的指数,所以要加入系数1/2。接下来,这个表达式会乘以一个给定的随机的学习速率,所以在这里乘上一个常系数是对结果是没有影响的。对每个神经元j的输出Oj可以定义如公式3.1-3所示。3.1-3之前神经元的输出OK的加权和是通向一个神经元的输入netj得出的。若该神经元输出层后的第一层,输入层的输出OK就是网络的输入XK。该神经元的输入数量是n。变量Wij反应神经元i和神经元j之间的权重关系。激活函数一般情况下是可微的非线性函数[23]。逻辑函数(公式3.1-4)经常被用作激活函数:3.1-4逻辑函数的导数的形式如公式3.1-5:3.1-5得出误差对权重的偏导数是连续使用两次链式法则(3.1-6)计算得到的:3.1-6上式中右边的最后一项只有加权和netj取决于Wij,因此:3.1-7所以假定使用逻辑函数的情况下神经元j的输出对其输入的导数就是激活函数的偏导数(3.1-8):3.1-8上面的推导说明了为什么反向传播的激活函数必须是可微的。如果神经元全部都在输出层中3.1-9并且此时Oj=y直接计算出第一项。但假设j是不全部在输出层中,而是在网络中随意的一内层内,求E关于Oj的导数就变得比较困难。把E作为一个输入函数,这个输入函数的输入对象是来自神经元j的所有神经元L=u,v,w...。3.1-10然后关于函数Oj求全微分,求出Oj全微分很容易得到这个导数的递归表达式(3.1-11):3.1-11同理,如果知道全部的关于下一层或者更接近输出神经元的那一层的输出OL的导数,就可以根据OL的导数计算Oj的导数。并且把这两个导数放在一起(3.1-12)。3.1-12其中3.1-13计算Wij如果要使用梯度下降法,必须指定一个学习速率阿尔法。原本的权重上的权重的变化等于学习速率与梯度的乘积乘以-1(3.1-140。3.1-14上市之所以乘以-1是的原因是要更新的不是误差极大值的方向,而是函数极小值的方向。3.1.3反向传播(BP)算法反向传播算法是“误差反向传播”算法的简称,反向传播算法是一种和最优化方法,通常情况下是梯度下降法相结合应用的,反向传播算法通常被作为训练人工神经网络的算法。反向传播算法计算神经网络中所有权重损失函数的梯度。计算得出的梯度会传递给最优化的方法,然后最优化的方法以最小化损失函数用来更新权值。反向传播算法通常被认为是一种有监督式的学习方法,但是反向传播算法有时也用在一些无监督的网络中[24]。BP神经网络算法的实现步骤如图3.1-3所示。首先是网络初始化,要对权值和阈值进行初始化,对权值和阈值进行初始化即是给输入层到隐藏层各单元之间连接权值以及隐藏层到输出层之间连接权值,输出层阈值和隐含层的阈值一般情况下随机赋予一个介于零和一之间的小数[25]。然后是选取训练样本及对选取的训练样本的预处理,跟据研究的目的,需要提供训练样本X=(x1,x2……xm),与此同时还要提供相对应的检验样本D=(d1,d2……dm)。因为BP神经网络各层的学习算法存在差异性,且BP神经网络各层所用的激活函数也可能不同,有必要在样本输入之前要对选取的输入样本作归一化处理。第三步是样本计算输出,输入层节点接收训练样本xi的值后会逐个计算每层神经元的实际输出,直到输出层结果收敛到较为理想的结果。然后输出层会将输出结果进行还原处理,还原处理后会得到实际值,用得到的实际值计算其与检验样本D(期望输出)之间的偏差,如果偏差在可接受范围以内,就得到训练好的BP神经网络,并可以用训练好的神经网络做下一步的研究工作,如果不满足要求则继续进行迭代处理,直到得到理想的结果为止。接下来是调整神经网络各层之间的连接权值。首先要计算神经网络各层之间的误差,得到一个从输出层节点到隐含层节点最后到输入层节点的逐层修改前后层之间的权重。最后返回第三步重新计算直到误差在可接受范围以内才终止计算。图3.1-3BP神经网络学习算法流程图在BP神经网络算法中,理论已经证明网络的层数具有偏差和至少一个S型隐藏层加上一个线性输出层的网络就能够逼近任何有理函数,虽然增加神经网络的层数可以有效的使误差降低,提高准确率,但也会使构建的神经网络过度复杂化。此外不可以使用激活函数是线性的单层网络来进行计算,因为自适应线性网络的功能要远远强于单层网络解决的功能,并且且自适应线性网络相对单层网络来说运算速度更快。网络学习的结构如图3.1-4所示。图3.1-4网络学习结构神经网络精度受隐层神经元的数量的影响,一般而言随着隐藏层数量的增加神经网络的训练精度也随之增加。有时也可以只用一个隐含层但是增加这个隐藏层神经元的数量来提高网络的训练精度,只采用一个隐藏层这种办法比增加隐藏层的层数在实现上要比较简单。通常情况下,采用精度和神经网络算法训练网络的时间来估测神经网络算法的质量。当神经网络算法的神经元数量比较少时,神经网络网络不能很好的学习以及训练迭代的次数也比较多从而导致训练精度不高。但是当神经网络算法使用比较多的神经元时,网络的功能虽然变得更加强大,却有可能会出现过拟合现象。所以神经网络隐藏层神经元个数的选取原则是在能够实现目的的基础上,适当的加上一个或者两个神经元以便加快误差下降速度即可。在神经网络学习中的学习速率一般取0.01−0.8之间的一个小数,因为选取的学习速率过大会使系统变得不太稳定,而如果选取小的学习速率,又会导致收敛太慢从而需要较长的训练时间。3.2实验数据的结构及预处理本实验采用的数据来源于德国某商业银行客户信贷数据记录,该表记录了1000条客户信贷数据,该表的数据结构定义如表3.2-1所示。表3.2-1序号变量名称变量释义变量类型变量描述1ID属性编号整型...2check_acc现有支票的账户状况类数据1:...<0DM2:0<=...<200DM3:...>=200DM/4:无支票账户3duration每月信用期长类数据...4cre_history信用历史类数据A30:nocreditstaken/allcreditspaidbackdulyA31:allcreditsatthisbankpaidbackdulyA32:existingcreditspaidbackdulytillnowA33:delayinpayingoffinthepastA34:criticalaccount/othercreditsexisting(notatthisbank)(续表)序号变量名称变量释义变量类型变量描述5purpose使用目的类数据A40:car(new)A41:car(used)A42:furniture/equipmentA43:radio/televisionA44:domesticappliancesA45:repairsA46:educationA47:(vacation-doesnotexist?)A48:retrainingA49:businessA410:others6cre_amount信用额度整型...7sav_account储蓄账户金额类数据A61:...<100DMA62:100<=...<500DMA63:500<=...<1000DMA64:..>=1000DMA65:unknown/nosavingsaccount8pre_emp目前就业情况类数据A71:unemployedA72:...<1yearA73:1<=...<4yearsA74:4<=...<7yearsA75:..>=7years(续表)序号变量名称变量释义变量类型变量描述9sex_status性别和婚姻状况类数据A91:male:divorced/separatedA92:female:divorced/separated/marriedA93:male:singleA94:male:married/widowedA95:female:single10deb_guar是否拥有共同账户人或着担保人类数据A101:noneA102:co-applicantA103:guarantor11pre_res目前居住地(年)整型...12property财产状况类数据A121:realestateA122:ifnotA121:buildingsocietysavingsagreement/lifeinsuranceA123:ifnotA121/A122:carorother,notinattribute6A124:unknown/noproperty13age年龄整型...14other_install其他的贷款情况类数据A141:bankA142:storesA143:none(续表)序号变量名称变量释义变量类型变量描述15housing房子拥有状况类数据A151:rentA152:ownA153:forfree16existing_credit客户信用卡的数量整型...17job工作状况类数据A171:unemployed/unskilled-non-residentA172:unskilled-residentA173:skilledemployee/officialA174:management/self-employed/highlyqualifiedemployee/officer18liable有责任供养的人的数量整型...19phone是否等级电话号码类数据A191:noneA192:yes,registeredunderthecustomersname20foreign是否是外国人类数据A201:yesA202:no3.2.1数据预处理数据挖掘对数据格式和内容上有一定的要求,因此要对数据进行预处理之后进行数据挖掘,数据预处理首先要对数据进行清理,数据清理主要是对数据空缺的填写空缺值。通常处理样本数据空缺值常用的方法有忽略元组、采用人工的方法去补充空缺值或者采用样本数据的属性的均值等代表性数据填补空缺值等。然后对有噪声的数据进行平滑化处理平滑,数据的噪声通常情况下指一个测量变量中随机出现的偏差或错误,对有噪声的数据进行平滑化处理平滑通常用到的方法是分箱、聚类、回归以及计算机和人工检查结合等方法。然后对样本数据进行识别,发现其中的孤立点并进行删除以便解决数据的不一致性等问题。数据清理完成后,要对数据进行集成,数据集成的主要操作是对样本数据包含的多个数据库和文件进行集成。数据集成常常用到模式集成。模式集成是指整合样本数据中的不同数据源中的元数据,然后对元数据进行实体识别问题,识别后对不同数据源和现实世界中客观存在的相同的实体进行匹配处理[26]。数据集成操作完成后对样本数据进行变换,变换数据的主要操作是对数据进行规范化处理,比如消除数据的冗余性,将样本数据集成多个数据库时会产生冗余数据,这是因为样本数据中的同一属性在集成中的不同的数据库中可能会产生不同的字段名,并且集成的多个数据库中一个属性可以由另外一个表导出。出现的冗余数据通过检测各个属性之间的相关性可以被相关分析检测到。为减少冗余数据的产生,可以采用对样本数据进行相关性分析的预处理手段。将数据进行聚集和汇总,将数据从大的子空间投射到相对小的一个子空间中去。数据变换操作完成后要进行数据规约,数据规约主要是对样本数据进行压缩表示,压缩后得到的结果和原数据相似或者相同。数据归约策略通常有数据立方体聚集、数据维归约、数据压缩等[27]。数据规约操作完成后要对数据进行离散化处理,数据离散是将样本数据中具有连续属性的子数据空间划分为区间,目的是减少样本数据的处理量。数据离散化处理可以看成是数据规约的一部分,数据离散化是通过数据的概念分层和离散化对样本数据进行规约,数据的离散化处理对数字型的数据比较重要。3.2.2数据指标选取数据预处理完成后,本文选取年龄、性别、目前居住地(年)居住状况、信用额度、目前就业情况、财产状况、信用期长、信用历史、客户信用卡的数量、储蓄账户金额、使用目的、是否拥有共同账户人或着担保人十四个因素来进行数据挖掘评估商业银行个人信用风险。选取指标后。由于样本数据只有客户是否违约,并没有说明该银行对客户的信任评级,所以本次任务无法完成对客户信任评级,只是对商业银行客户是否违约进行判定。为了数据挖掘过程中处理方便,将商业银行信贷客户只划分为优质客户和不良客户。若客户属性值为1,则认为该客户不会违约,不良客户的客户属性值为0。在bank表中还要对指标属性值进行处理,因为拿到的属性值类型不确定,既有数字型,又有文本型,所以要将所有的样本数据的所有属性值都变换成数值型,比如对于性别用1代表男性而2则代表女性;对样本数据的其它属性值也做了类似的相应处理。样本数据的属性值处理后的结果如表3.2-2所示。表3.2-2预处理后数据源属性说明flag(Y)0:违约客户1:无违约记录客户年龄(X1)实际值性别(X2)0:男1:女目前居住地(年)居住状况(X3)0:小于等于一年1:大于一年且小于等于两年2:大于两年且小于等于四年3:大于四年信用额度(X3)0:小于等于100DM1:大于100DM且小于等于500DM2:大于500DM且小于等于1000DM3:大于1000DM目前就业年限情况(X6)0:小于等于一年1:大于一年且小于等于两年2:大于两年且小于等于四年3:大于四年(续表)flag(Y)0:违约客户1:无违约记录客户财产状况(X7)0:有房产1:无房产2:有财产3:客户无财产或未知信用期长(X8)实际值信用历史(X9)0:无信用支取1:及时还清所有信用债务2:迄今为止还清已存在的信用债务3:在过去曾滞后支付信用债务4:是危机账户客户信用卡的数量(X11)0:小于等于1张1:大于1张且小于等于3张2:大于3张且小于等于5张3:大于5张储蓄账户金额(X12)0:小于等于100DM1:大于100DM且小于等于500DM2:大于500DM且小于等于1000DM3:大于1000DM使用目的(X13)0:无使用记录1:购车2:购房3:教育4:其他是否拥有共同账户人或着担保人(X14)0:无1:有经过对数据的处理之后,得到一张新的数据表,表的数据结构表3.2-3所示。表3.2-3数据处理后的bank表数据结构flag(Y)int年龄(X1)int性别(X2)int目前居住地(年)居住状况(X3)int信用额度(X3)int目前就业年限情况(X6)int财产状况(X7)int信用期长(X8)float信用历史(X9)int客户信用卡的数量(X11)int储蓄账户金额(X12)int使用目的(X13)int是否拥有共同账户人或着担保人(X14)int数据处理后,我们共得到1000个样本。3.3基于BP神经网络的信用风险评估方法模型在本研究中数据表提供有14个条件属性,因此在用R语言实现的BP神经网络模型中有14个输入节点,输出节点为2个,分为好客户和坏客户两种。3.3.1网络的构建及训练本模型采用两个隐层,第一个隐藏曾节点个数为8个,第二个隐藏层节点个数为4个。综上所述,我们构建的BP神经网络模型如图3.3-1所示。本研究采用基于R语言的BP神经网络实现,样本分为训练集和测试集,代码如下:dat<-read.table('german.data-numeric',header=F)for(iin1:15){dat[,i]<-as.numeric(as.vector(dat)[,i])}train_dat<-dat[1:input$shuliang,]test_dat<-dat[input$shuliang:1000,]图3.3-1BP神经网络模型3.3.2模型测试结果数据挖掘从数据分析的角度来看可分为描述性和预测式两种方式,首先对样本数据进行了统计,结果如图3.3-2所示。图3.3-2总样本违约情况统计然后对训练集样本数据进行了统计,结果如图3.3-3所示。图3.3-3训练样本违约情况统计然后数据经过BP神经网络算法学习后,算法计算出的LMS值如图3.3-4所示。图3.3-4BP神经网络LMS值对预测样本数据进行了统计,结果如图3.3-5所示图3.3-5预测违约情况统计根据上面的数据,得出预测为优质客户和不良客户的详细数据,并计算总体预测准确率、优质客户预测准确率和不良客户预测准确率,结果如表3.3-1所示。表3.3-1神经网络测试结果实际为优质客户(人)实际为不良客户(人)预测为优质客户30823预测为不良客户58111总体预测准确率83.8%优质客户预测准确率84.15%不良客户预测准确率82.8%3.4小结近年来,BP神经网络算法作为一种高效常用的数据挖掘算法,在商业银行客户信用风险分析中得到了比较多的应用。本章中,首先对BP神经网络基本理论以及梯度下降算法进行了详细的介绍,然后对选取的样本数据的商业银行贷款记录数据按照数据挖掘对数据的要求进行了数据的预处理,预处理过程中完成了对指标的属性值进行处理,使得样本数据能够满足BP神经网络算法的需要。同时,数据预处理的结果也为下一章决策树算法的数据做好了准备。根据商业银行客户信用风险分析评估的特点,在BP人工神经网络模型中通过一连串的构建起多层神经网络信用预测模型,计算出了BP神经网络模型的对客户分类的准确率。基于决策树算法的个人信用风险评估4.1决策树算法概述数据挖掘中应用比较广泛也比较简单的一种算法是决策树算法,决策树算法有着以下特点:准确率高、简单和高效等,决策树算法既能处理传统的数值型的数据,比如“客户收入”、“客户的信用额度”、“客户的储蓄余额’等,还能处理非典型数值型的数据,例如“客户性别”、“客户是否具有担保人”,“客户的工作状况”、“客户的历史信用记录”等,所以决策树算法十分适合对商业银行客户进行信用风险评估。4.1.1ID3算法ID3算法(IterativeDichotomiser3迭代二叉树3代)是由RossQuinlan源于概念学习系统而率先发明的一种用于构造决策树的算法。这个算法是以Occam'sRazor理论为基础而建立的,Occam'sRazor理论认为一般情况下小的决策树要比大型的决策说更为适用。一般决策树的构造流程如图4.1-1所示。图4.1-1决策树构造流程而ID3算法作为决策树算法的一种,首先面临的是选择合适的特征去划分数据集。D3算法通常情况下是选择信息增益最大的属性来成为对数据集分类的特征。然后通过连续的选择这些特征完成对数据集不断划分直到符合要求才停止划分[28]。所以接下来的关键是ID3算法如何确定结束划分。ID3算法判断结束划分一般分为两种情况,在第一种情况下,ID3算法把划分出来的类归属到同一个类来完成划分。第二种情况下,则是为划分的属性已经不能够再继续划分。ID3算法全称是迭代二叉树3代,通过名字可以看出ID3算法是用迭代的方式得到决策树模型。ID3算法的基本流程如图4.1-2所示。图4.1-2ID3算法基本流程信息增益与信息熵是ID3算法分类的衡量标准。信息的混乱程度称之为信息熵,变量的不确定和信息熵的值成正比,信息熵的计算公式公式为4.1-1:4.1-1P(ui)为类别ui在样本数据S中出现的概率大小。信息增益可以看成信息熵在划分之后的变化,信息增益一般用公式4.1-2计算:4.1-2A代表样本数据中的属性,而Value(A)则是样本数据中属性的所有取值的一个集合。V是A的其中之一属性值,SV则代表的是样本数据S中A的值等于V的所有样例的集合。信息增益作为信息熵的有效减少量,它的值越高,则说明目标属性值在参考属性值处信息熵损失的就越多,即损失的不确定性变大,所以通常情况下参考属性应该越早作为决策的依据属性用在决策树进行分类的时候。ID3算法在实际应用中通常要设置一个“阈值”,这个“阈值”的作用是当节点下的随意一个分类所占比例超过设置的这个阈值时,就会停止分类,这样就可以有效避免产生没有实际意义过小的分类节点。ID3算法作为决策树实现的一个算法,也有许多不足,比如ID3算法分类会受取值数量的影响,并且未处理的ID3算法只能处理离散数据而不能处理连续型数据等。下一小节介绍的C4.5算法可以看成是对ID3算法的一个改进。4.1.2C4.5算法与C5.0算法上一小节提到的决策树的ID3算法,处理的数据只能是离散的,遇到连续型数据时,首先要把这些连续型数据离散化处理,然后才能用ID3算法对这些数据进行构建决策树的操作。RossQuinlan鉴于ID3算法存在的缺点又提出了C4.5算法,C4.5算法能够对连续型数据进行操作。C4.5算法相对ID3算法多出了信息增益率(Informationgainratio)与分离信息(SplitInformation)这两个新的概念[29]。分离信息的数学计算表达式为4.1-3:4.1-3而信息增益率的公式的数学计算表达式为4.1-4:4.1-4C4.5算法是基于ID3算法不足的一个改进算法,C4.5算法用信息增益率来对属性进行选择,克服了ID3算法采用信息增益选择属性时的不足。并且C4.5算法是在决策树的构造过程中对决策树进行剪枝。C4.5算法不但能对属性的连续值进行离散化的预处理,还能够处理不完整数据。采用C4.5算法产生的分类准确率较高,规则容易理解。C4.5算法也存在着一些不足,比如在使用C4.5算法构造决策树的过程中,因为要对样本数据集进行排序,并要顺序多次的扫描样本数据集,所以使得C4.5算法比较耗时。当训练集比较大时,无法用C4.5算法进行决策树的构造,这是因为C4.5算法只能够处理保存在内存中的数据集。C4.5算法的基本流程如图4.1-3所示图4.1-3C4.5算法的基本流程C5.0算法则是基于C4.5算法的基础上改进的对大数据集进行分类的一种决策树算法,C5.0算法相对于C4.5算法主要是在内存使用与算法执行效率两个方面进行了完善。C5.0算法相对于ID3算法和C4.5算法更适用于对大数据集进行处理,C5.0算法采用Boosting方法来增大模型的准确率,所以基于C5.0算法的决策树通常又被称为BoostingTrees,基于C5.0算法的决策树在计算速度上更快,并且使用的内存也比较少。C5.0算法是一种经典高效的决策树算法,基于C5.0算法的决策树可生成多个分支,C5.0算法通过把样本数据中的目标变量转化为分类变量可以生成规则集或者决策树。C5.0算法根据最大信息增益的字段对样本进行拆分[30]。首次拆分会确定样本的子集,样本子集确定后会继续根据另一个字段进行拆分,拆分过程会一直重复进行直到样本子集不能再被拆分为止。最后则对模型值没有显著作用的样本子集被剔除或者修剪。C5.0算法具有以下优点,C5.0算法在处理数据遗漏问题时比较稳定,并且面临输入字段存在较多的问题时表现也会比较稳健。基于C5.0算法的决策树模型比一些其他类型的模型可能更易于理解,这是因为C5.0算法的模型退出的规则十分直观。C5.0算法还提高了分类的精度。4.2基于C5.0算法的决策树方法个人信用风险评估模型根据Quinlan对C5.0算法的说明,并且利用选取的样本数据多次做验证性质的实验,构造基于C5.0算法的决策树并得到判定结果,由得到的结果的准确性对C5.0算法构造决策树的过程进行改进,最终利用C5.0算法最后改进得到的决策树建立对商业银行客户信用风险评估的模型。4.2.1数据采集本节使用的样本数据依然是德国某商业银行的客户个人信贷数据。这个数据集共有一千条客户信贷记录.每一条客户信贷记录由二十一个属性构成。前二十个属性是关于客户信贷的描述,比如储蓄存款账户、分期付款金额占可支配收入比率、在目前住址居住时间等等.最后一个属性是该商业银行对客户信贷信用的评定,评定结果分为“优质客户”与“不良客户”两类。首先对样本数据的前20个属性进行分类,如表4.2-1所示。表4.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论