clc
clear
close all
load maydata.mat
rand('state',2)
num =a;
n = randperm(length(num));
m = round(0.7*length(num));
input_train=num(n(1:m),1:8)';%训练数据的输入数据
output_train=num(n(1:m),9)';%训练数据的输出数据
input_test=num(n(m+1:end),1:8)';%测试数据的输入数据
output_test=num(n(m+1:end),9)'; %测试数据的输出数据
%选连样本输入输出数据归一化
[inputn,inputps]=mapminmax(input_train,-1,1);%训练数据的输入数据的归一化
[outputn,outputps]=mapminmax(output_train,-1,1);%训练数据的输出数据的归一化de
%% BP网络训练
% %初始化网络结构
%trainc traincgb traincgf traincgp traingda traingdx trainlm
%trainoss trainr trainrp trains trainscg
net=newff(minmax(inputn),[25,1],{'logsig','purelin'},'trainscg');
net=newff(minmax(inputn),[25,1],{'logsig','tansig'},'trainlm');
%net.trainParam.showWindow = false;%关闭训练窗口
%net.trainParam.max_fail = 9;
net.trainParam.epochs=2000;%最大迭代次数
net.trainParam.lr=0.01;%学习率
net.trainParam.goal=0.01;%学习目标
%网络训练
net=train(net,inputn,outputn);
%% BP网络预测
%预测数据归一化
inputn_test=mapminmax('apply',input_test,inputps);
outt =mapminmax('apply',output_test,outputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=round(mapminmax('reverse',an,outputps)+0.1);
BPoutput(BPoutput<0)=0;
BPoutput(BPoutput>1)=1;
[MSE ,RMSE, MBE ,MAE ] =MSE_RMSE_MBE_MAE(output_test(1,:),BPoutput(1,:))
R_2 = R_2(output_test(1,:),BPoutput(1,:))
%% 结果分析
figure
plot(BPoutput(1,:),'ro')%预测的结果数据画图-代表虚线,O代表圆圈标识,r代表红色
hold on
plot(output_test(1,:),'k*');%期望数据,即真实的数据画图,-代表实现,*就是代表*的标识,k代表黑色
hold on
legend('BP神经网络测试仿真值','真实值','Location','southeast')%标签
title('BP神经网络','fontsize',12)%标题 字体大小为12
xlabel('年份','fontsize',12)%X轴
ylabel('ST')
set(gca,'fontsize',12)
set(gca,'YTick',0:1)
ylim([-0.1 1.1])
%预测误差
error=BPoutput-output_test;
figure
plot(error(1,:),'-*')
title('BP网络预测误差','fontsize',12)
ylabel('误差','fontsize',12)
xlabel('年份','fontsize',12)
set(gca,'fontsize',12)
zhunquelv = sum(BPoutput==output_test)/length(output_test)
tp =0;
fn = 0;
fp = 0;
tn = 0;
for ii = 1:length(output_test)
if output_test(ii)==BPoutput(ii)
if output_test(ii)==1%负负
tn = tn+1;
else
tp = tp+1;%正正
end
else
if output_test(ii)==1%负正
fp = fp+1;
else
fn = fn+1;%正负
end
end
end
acc = (tp+tn)./(tp+tn+fp+fn)
spec = tn/(tn+fp)
sens = tp/(tp+fn)
基于BP神经网络的公司财务风险分类(代码完整,数据齐全)
版权申诉
![star](https://csdnimg.cn/release/downloadcmsfe/public/img/star.98a08eaa.png)
![avatar](https://profile-avatar.csdnimg.cn/3165706ad4e540aeb062dd5ebcf069a7_abc991835105.jpg!1)
![avatar-vip](https://csdnimg.cn/release/downloadcmsfe/public/img/user-vip.1c89f3c5.png)
神经网络机器学习智能算法画图绘图
- 粉丝: 2514
- 资源: 618
最新资源
- matlab画图教程.docx
- 基于MNIST数据集卷积神经网络实现手写数字识别(GUI).zip
- 一个MATLAB仿真设计的例子,演示如何对一个模拟信号进行傅里叶变换:
- 10-Hadoop(HA)V4.0.docx
- 基于MNIST数据集卷积神经网络实现手写数字识别(GUI)源码+文档说明
- 自定义函数在后缀表达式中的应用与实现
- 使用python爬取天气信息(包括历史天气数据)_python爬取天气数据-CSDN博客.html
- 毕设项目:高校学生宿舍管理系统的设计与实现(ASP.NET+源代码+论文)
- Navicat入门教程.docx
- os.path.join(root, 'test-average-edge-map'
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)