BP神经网络数据预测实例代码

在这里插入图片描述

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)

BP神经网络是一种经典的人工神经网络模型,可以用于数据预测和模式识别。下面以一个实例来说明BP神经网络数据预测应用。 以股票市场为例,通过BP神经网络可以预测股票价格的涨跌趋势。首先,收集一段时间的历史股票交易数据,包括股价、成交量、市盈率等指标作为输入特征。通过对这些特征进行标准化处理,将其转换为0到1的范围内。 接下来,构建BP神经网络模型。该模型包括输入层、隐藏层和输出层。输入层接收经过标准化处理的特征数据,隐藏层可以有多个神经元,通过激活函数将输入信号传递给下一层。输出层通过再次运用激活函数将隐藏层的输出转化为预测的股票价格。 模型的训练阶段分为两个步骤。首先,将历史数据中的一部分作为训练集,用于初始化神经网络的权重和偏置。然后,将剩余的数据作为测试集,用于验证模型的预测能力。通过反向传播算法,不断调整神经网络的权重和偏置,使得预测结果与实际之间的误差不断减小,最终达到较好的预测效果。 训练完成后,可以用该模型对未来的股票数据进行预测。将未来一段时间的特征数据输入到训练好的BP神经网络中,可以得到预测的股票价格。通过与实际进行比较,可以评估预测准确度,并根据需要对模型进行进一步调整和改进。 综上所述,BP神经网络可以通过对历史数据的学习和训练,实现对未来数据预测。然而,要注意的是,股票市场受到多种因素的影响,预测结果可能存在一定程度的误差,因此在实际应用中需要综合考虑其他因素,做出合理的决策。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值