个人收集整理,勿做商业用途
练集,用于训练神经网络,样本数据总数的三分之一的数据作为测试集,用于测试神经网络的精度。
(二)使用BP网络对客户进行信用评级
根据以上所述的神经网络模型生成神经网络,设定学习率、学习次数和误差精度,输入训练集中的样本数据,采用经典BP算法对神经网络进行训练,当训练结束后,对测试集中的数据进行仿真,将计算出的预测值与期望输出进行比较。
本文使用MATLAB编写程序进行仿真,主要代码如下: …; %读入训练集中的数据 P=…;
P=P’; %进行矩阵转置 …;
T=…; %输入教师数据
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;0 1;]; net=newff(threshold,[9, 1],{'logsig','logsig'},'traingd');%创建BP神经网络,设置转移函数为S型函数,训练函数为BP算法函数
net.trainParam.lr=0.01; %设置学习率为0.01
net.trainParam.epochs=100000; %设置最大的训练次数为100000次 net.trainParam.goal=0.005; %设置误差精度 net=init(net);
net=train(net,P,T); %根据训练集中的数据训练网络
… ; %读入测试集中的数据 P_test=… ; P_test=P_test’; … ;
T_test=…;
Y=sim(net,P_test); %对测试集中的数据进行仿真 error=Y-T_test;
perf=mse(error); %计算均方差
测试结果与误差分别如图2、图3所示。
图2 BP网络模型训练结果 图3 BP网络模型误差图
(三)使用LM-BP网络对客户进行信用评级
由于BP网络自身的缺陷使得网络训练时间较长。为了能更好地进行对比分析,本文在使用LM-BP算法网络模型对客户进行信用评级时,训练函数为trainlm,其它参数设置与BP算法相
6
个人收集整理,勿做商业用途
同。
使用相同的训练集中的样本数据对LM-BP网络进行训练,训练结果图4所示。
图4 LM-BP网络模型训练结果 图5 LM-BP网络误差曲线图
对比图2与图4可知,使用经典BP算法的神经网络需要经过29785次训练才能达到网络目标误差,所花费的时间比较长。在此基础上,本文使用LM算法进行优化,只需6次训练就能达到网络目标误差。但是从实验结果看,LM-BP网络的准确率只达到84%,并且出现了将客户信用等级“提高”的错误,这对企业来说是非常不利的。原因在于LM算法是一种快速收敛算法,它可以很快地使神经网络训练误差达到目标误差要求,但此时网络可能并没有达到收敛,所以网络的泛化误差较大。因此,需要对LM-BP网络进一步进行优化。
神经网络停止训练的准则通常为:一是达到训练目标误差;另一个是达到最大训练次数。由于LM算法能够使得BP网络快速达到训练误差,但此时神经网络可能还没有达到收敛,因此,本文将“达到最大训练次数”做为LM-BP网络停止训练的唯一条件。经过多次的试验,从程序运行情况看,LM-BP网络训练次数基本上不超过1200次时,网络训练误差不再减小或者是减小得非常缓慢。因此,本文中将训练次数设置为1200次,训练结果如图6-5所示。为了与前面的LM-BP网络区别,本文将“达到最大训练次数”做为训练结束条件的LM-BP网络称为LM-BP网络Ⅱ。其训练次数与误差如图6所示。
图6 LM-BP网络Ⅱ训练结果图
从实验结果看,LM-BP网络Ⅱ准确率可达到92%。虽然网络的训练时间比设定网络训练误差为0.005的LM-BP网络长,但是,远远低于BP网络的训练时间。并且,对企业来说,在进行客户信用评级时,准确率以及不出现“升级”错误是最重要的。
五、结论
人工神经网络技术在分类技术中具有分类准确度高的特点。本文结合L公司客户信用评级问题,研究神经网络原理,运用BP神经网络建立了客户信用评级模型,实验结果表明,该模型从分类准确度及效率两方面来看,是符合企业的需要的。传统的BP算法属于梯度下降法,这导致
7