资源描述:
《基于bp_adaboost的强分类器设计-公司财务预警建模》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、%%清空环境变量clcclear%%下载数据loaddata1inputoutput%%权重初始化k=rand(1,2000);[m,n]=sort(k);%训练样本input_train=input(n(1:1900),:)';output_train=output(n(1:1900),:)';%测试样本input_test=input(n(1901:2000),:)';output_test=output(n(1901:2000),:)';%样本权重[mm,nn]=size(input_tra
2、in);D(1,:)=ones(1,nn)/nn;%训练样本归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);K=10;fori=1:K%弱预测器训练net=newff(inputn,outputn,5);net.trainParam.epochs=20;net.trainParam.lr=0.1;net=train(net,inputn,outputn);%弱预测器预测an1
3、=sim(net,inputn);BPoutput=mapminmax('reverse',an1,outputps);%预测误差erroryc(i,:)=output_train-BPoutput;%测试数据预测inputn1=mapminmax('apply',input_test,inputps);an2=sim(net,inputn1);test_simu(i,:)=mapminmax('reverse',an2,outputps);%调整D值Error(i)=0;forj=1:nnifa
4、bs(erroryc(i,j))>0.2%较大误差Error(i)=Error(i)+D(i,j);D(i+1,j)=D(i,j)*1.1;elseD(i+1,j)=D(i,j);endend%计算弱预测器权重at(i)=0.5/exp(abs(Error(i)));%D值归一化D(i+1,:)=D(i+1,:)/sum(D(i+1,:));end%%强预测器预测at=at/sum(at);%%结果统计%强分离器效果output=at*test_simu;error=output_test-out
5、put;plot(abs(error),'-*')holdonfori=1:8error1(i,:)=test_simu(i,:)-output;endplot(mean(abs(error1)),'-or')title('强预测器预测误差绝对值','fontsize',12)xlabel('预测样本','fontsize',12)ylabel('误差绝对值','fontsize',12)legend('强预测器预测','弱预测器预测')%%清空环境变量clcclear%%下载数据loaddata
6、input_trainoutput_traininput_testoutput_test%%权重初始化[mm,nn]=size(input_train);D(1,:)=ones(1,nn)/nn;%%弱分类器分类K=10;fori=1:K%训练样本归一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);error(i)=0;%BP神经网络构建net=newff(inputn,outp
7、utn,6);net.trainParam.epochs=5;net.trainParam.lr=0.1;net.trainParam.goal=0.00004;%BP神经网络训练net=train(net,inputn,outputn);%训练数据预测an1=sim(net,inputn);test_simu1(i,:)=mapminmax('reverse',an1,outputps);%测试数据预测inputn_test=mapminmax('apply',input_test,inputp
8、s);an=sim(net,inputn_test);test_simu(i,:)=mapminmax('reverse',an,outputps);%统计输出效果kk1=find(test_simu1(i,:)>0);kk2=find(test_simu1(i,:)<0);aa(kk1)=1;aa(kk2)=-1;%统计错误样本数forj=1:nnifaa(j)~=output_train(j);error(i)=error(i)+D(i,j);endend%弱分类器i权重at(