运行BP神经网络预测误差大

2024-06-11 18:32

本文主要是介绍运行BP神经网络预测误差大,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自

数据为66个,17个指标输入,1个输出。

数据长短不一,最小的个位数,最大的9位数。运行下列代码后误差非常大,求大神们给减小误差的指导方向。
matlab代码如下:
clc
clear

%load data1 input output
load matlab3 input output
P=input(1:60,:)';
T=output(1:60,:)';
input_test=input(1:60,:)';
output_test=output(1:60,:)';

%训练数据归一化
[inputn,inputs]=mapminmax(P);
[outputn,outputs]=mapminmax(T);


%  创建一个新的前向神经网络 
net=newff(minmax(P),[17,1],{'tansig','purelin'},'trainbr');
%  当前输入层权值和阈值 
inputWeights=net.IW{1,1}; 
inputbias=net.b{1}; 
%  当前网络层权值和阈值 
layerWeights=net.LW{2,1}; 
layerbias=net.b{2}; 
%  设置训练参数 
net.trainParam.show = 100; 
net.trainParam.lr = 0.1; 
net.trainParam.mc = 0.9; 
net.trainParam.epochs = 6000; 
net.trainParam.goal = 1e-3; 
%  调用 TRAINGDM 算法训练 BP 网络 
[net,tr]=train(net,P,T); 

%BP神经网络的预测
%预测数据归一化
%inputn_test=mapminmax('apply',input_test,inputs);
%BP神经网络预测输出
an=sim(net,P);
%输出结果反归一化
BPoutput=mapminmax('reverse',an,outputs);
%输出训练后的权值和阈值
iw1=net.iw(1);
b1=net.b(1);
iw2=net.lw(2);
ba=net.b(2);

%画图
%网络预测结果图形
figure(1)
plot(BPoutput,':og')
hold on
plot(output_test,'-*')
legend('预测输出','期望输出')
title('BP神经网络预测输出')
ylabel('输出')
xlabel('样本')
%网络预测误差图形
error=output_test-BPoutput;
figure(2)
plot(error,'-*')
title('BP神经网络预测误差')
ylabel('误差 error')
xlabel('样本')
%}

这篇关于运行BP神经网络预测误差大的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051950

相关文章

Linux使用nohup命令在后台运行脚本

《Linux使用nohup命令在后台运行脚本》在Linux或类Unix系统中,后台运行脚本是一项非常实用的技能,尤其适用于需要长时间运行的任务或服务,本文我们来看看如何使用nohup命令在后台... 目录nohup 命令简介基本用法输出重定向& 符号的作用后台进程的特点注意事项实际应用场景长时间运行的任务服

如何在一台服务器上使用docker运行kafka集群

《如何在一台服务器上使用docker运行kafka集群》文章详细介绍了如何在一台服务器上使用Docker运行Kafka集群,包括拉取镜像、创建网络、启动Kafka容器、检查运行状态、编写启动和关闭脚本... 目录1.拉取镜像2.创建集群之间通信的网络3.将zookeeper加入到网络中4.启动kafka集群

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

如何在运行时修改serialVersionUID

优质博文:IT-BLOG-CN 问题 我正在使用第三方库连接到外部系统,一切运行正常,但突然出现序列化错误 java.io.InvalidClassException: com.essbase.api.base.EssException; local class incompatible: stream classdesc serialVersionUID = 90314637791991

win7+ii7+tomcat7运行javaWeb开发的程序

转载请注明出处:陈科肇 1.前提准备: 操作系统:windows 7 旗舰版   x64 JDK:jdk1.7.0_79_x64(安装目录:D:\JAVA\jdk1.7.0_79_x64) tomcat:32-bit64-bit Windows Service Installer(安装目录:D:\0tomcat7SerV) tomcat-connectors:tomcat-connect

单位权中误差 详细介绍

单位权中误差(Unit Weight Error, UWE)是用于描述测量数据不确定性的一个统计量,特别是在地理信息系统(GIS)、导航和定位系统中。它主要用于评估和比较不同测量系统或算法的精度。以下是对单位权中误差的详细介绍: 1. 基本概念 单位权中误差(UWE): 定义:单位权中误差表示每个观测值(测量值)在估算中的标准误差。它是误差的一个统计量,主要用于评估测量系统的精度。单位:通常

机器学习之监督学习(三)神经网络

机器学习之监督学习(三)神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一:TensorFlow搭建神经网络 4. 反向传播梯度下降 Back Propagation Gradient Descent模块二:激活函数 activ