
clear all
clc
%%清空环境变量%1.导入数据
load data%2.随机产生训练集和测试集
temp = randperm(size(DATA,1));%打乱60个样本的顺序%训练集——50个样本
P_train = DATA(temp(1:50),:)';
T_train = DATA2(temp(1:50),:)';
%测试集——10个样本
P_test = DATA(temp(51:end),:)';
T_test = DATA2(temp(51:end),:)';
N=size(P_test,2);%3.数据归一化
[p_train,ps_input] = mapminmax(P_train,0,1);
p_test = mapminmax('apply',P_test,ps_input);[t_train,ps_output] = mapminmax(T_train,0,1);%4.创建网络
net = newff(p_train,t_train,9);% 9是隐含层神经元的个数%5.设置训练参数
net.trainParam.epochs = 1000; %迭代次数
net.trainParam.goal = 1e-3; %mse均方根小于这个值训练结束
net.trainParam.lr = 0.01; %学习率%6.训练网络
net = train(net,p_train,t_train);%7.仿真测试
t_sim = sim(net,p_test); %返回10个样本的预测值%8.数据反归一化
T_sim = mapminmax('everse',t_sim,ps_output);%反归一化结果 %9.性能评价error = abs(T_sim-T_test)./T_test; %相对误差的计算%决定系数R2
R2 = (N*sum(T_sim.*T_test)-sum(T_sim)*sum(T_test))^2/((N*sum((T_sim).^2)-(sum(T_sim))^2)*(N*sum((T_test).^2)-(sum(T_test))^2));%结果对比
result = [T_test' T_sim' error'] %输出真实值,预测值,误差%10.绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比':['R^2=num2str(R2)']};
title(string)
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!