MATLABGRNN广义回归神经网络数据预测编程

2024-02-22 21:58

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

一、理论基础

广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测效果很好,   网络还可以处理不稳定数据。 广义回归神经网络对x的回归定义不同于径向基函数的对高斯权值的最小二乘法叠加,他是利用密度函数来预测输出。 假定x,y为两个随机变量,联合概率密度为 f(x,y)。 我们就得到以下公式: (x0)=F(y*f(x0,y))/F(f(x0,y)). F代表积分。 (x0)就是y在x0条件下在预测输出。 x0是的观测值。 现在未知数就是f(x,y)。 怎样估计已知数值而未知分布的密度函数呢?这里我们使用Parzen非参数估计方法。 窗口函数选择为高斯窗口。 得到下式 y(x0)=F(y*exp(-d))/F(exp(-d))。 d代表的就是离中心的距离,exp(-d)就是径向基函数隐含层的输出。

二、程序

desired_spread=[]; mse_max=10e20; desired_input=[]; desired_output=[]; result_perfp=[]; indices = crossvalind('Kfold',length(p_train),4); h=waitbar(0,'正在寻找最优化参数....') k=1; for i = 1:4    perfp=[];    disp(['以下为第',num2str(i),'次交叉验证结果'])    test = (indices == i); train = ~test;    p_cv_train=p_train(train,:);    t_cv_train=t_train(train,:);    p_cv_test=p_train(test,:);    t_cv_test=t_train(test,:);    p_cv_train=p_cv_train';    t_cv_train=t_cv_train';    p_cv_test= p_cv_test';    t_cv_test= t_cv_test';    [p_cv_train,minp,maxp,t_cv_train,mint,maxt]=premnmx(p_cv_train,t_cv_train);    p_cv_test=tramnmx(p_cv_test,minp,maxp);    for spread=0.1:0.1:2;        net=newgrnn(p_cv_train,t_cv_train,spread);        waitbar(k/80,h);        disp(['当前spread值为', num2str(spread)]);        test_Out=sim(net,p_cv_test);        test_Out=postmnmx(test_Out,mint,maxt);        error=t_cv_test-test_Out;        disp(['当前网络的mse为',num2str(mse(error))])        perfp=[perfp mse(error)];        if mse(error)<mse_max            mse_max=mse(error);            desired_spread=spread;            desired_input=p_cv_train;            desired_output=t_cv_train;        end        k=k+1;    end    result_perfp(i,:)=perfp; end; disp(['最佳spread值为',num2str(desired_spread)]) disp(['此时最佳输入值为']) desired_input disp(['此时最佳输出值为']) desired_output %% 采用最佳方法建立GRNN网络 net=newgrnn(desired_input,desired_output,desired_spread); p_test=p_test'; grnn_prediction_result=sim(net,p_test); grnn_prediction_result=postmnmx(grnn_prediction_result,mint,maxt); grnn_error=t_test-grnn_prediction_result'; disp(['GRNN神经网络三项流量预测的误差为',num2str(abs(grnn_error))])

[+vx  matlab56,讨论技术问题]   

三、结果展示

这篇关于MATLABGRNN广义回归神经网络数据预测编程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

零基础STM32单片机编程入门(一)初识STM32单片机

文章目录 一.概要二.单片机型号命名规则三.STM32F103系统架构四.STM32F103C8T6单片机启动流程五.STM32F103C8T6单片机主要外设资源六.编程过程中芯片数据手册的作用1.单片机外设资源情况2.STM32单片机内部框图3.STM32单片机管脚图4.STM32单片机每个管脚可配功能5.单片机功耗数据6.FALSH编程时间,擦写次数7.I/O高低电平电压表格8.外设接口

16.Spring前世今生与Spring编程思想

1.1.课程目标 1、通过对本章内容的学习,可以掌握Spring的基本架构及各子模块之间的依赖关系。 2、 了解Spring的发展历史,启发思维。 3、 对 Spring形成一个整体的认识,为之后的深入学习做铺垫。 4、 通过对本章内容的学习,可以了解Spring版本升级的规律,从而应用到自己的系统升级版本命名。 5、Spring编程思想总结。 1.2.内容定位 Spring使用经验

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

数据时代的数字企业

1.写在前面 讨论数据治理在数字企业中的影响和必要性,并介绍数据治理的核心内容和实践方法。作者强调了数据质量、数据安全、数据隐私和数据合规等方面是数据治理的核心内容,并介绍了具体的实践措施和案例分析。企业需要重视这些方面以实现数字化转型和业务增长。 数字化转型行业小伙伴可以加入我的星球,初衷成为各位数字化转型参考库,星球内容每周更新 个人工作经验资料全部放在这里,包含数据治理、数据要

如何在Java中处理JSON数据?

如何在Java中处理JSON数据? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将探讨在Java中如何处理JSON数据。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,在现代应用程序中被广泛使用。Java通过多种库和API提供了处理JSON的能力,我们将深入了解其用法和最佳

两个基因相关性CPTAC蛋白组数据

目录 蛋白数据下载 ①蛋白数据下载 1,TCGA-选择泛癌数据  2,TCGA-TCPA 3,CPTAC(非TCGA) ②蛋白相关性分析 1,数据整理 2,蛋白相关性分析 PCAS在线分析 蛋白数据下载 CPTAC蛋白组学数据库介绍及数据下载分析 – 王进的个人网站 (jingege.wang) ①蛋白数据下载 可以下载泛癌蛋白数据:UCSC Xena (xena