使用神经网络对黄金期货交割价格进行预测-2 MATLAB_rmse sumsqr-程序员宅基地

技术标签: matlab  神经网络  BP  数据挖掘  

   上一篇文章介绍了数据的预处理部分,这一篇文章将会介绍神经网络模型的建立以及预测结果的输出和误差统计。

   对于BP神经网络的模式识别来说,参数的设置对于神经网络的识别性能有着很大的影响。对于不同的问题来说应该有着其适当的参数设置。我的参数设置如下代码。

%%%bp神经网络的参数设置
NodeNum=12;%隐层节点数
TypeNum=1;%输出节点数
Epochs=500;%最大学习次数
net=newff(minmax(p1),[NodeNum,TypeNum],{'logsig','logsig'},'trainlm');
net.performFcn='sse';
net.trainParam.goal=0.001;%训练sse目标
net.trainParam.min_grad=1e-20;%最小梯度
net.trainParam.show = 200;
net.trainParam.epochs = Epochs;
net.trainParam.mc = 0.95;%动量因子
net.trainParam.lr=0.01;%学习率
net.divideFcn = '';
   1.隐层节点数:隐层节点的数目会大大的影响识别率和训练时间。过大会造成计算开销大大增加,收敛速度变慢,且容易造成过拟合的现象。若隐层节点数目过小,有可能根本不会收敛。若刚刚可以收敛,但是网络会对坏值异常的敏感,抗干扰能力弱。隐层节点数的设置没有一个具体的理论支撑,大部分还是需要靠前人总结的经验以及具体的试验结果来确定。一般隐层节点的个数设为,n为输入节点数,m为输出节点数,a为[1,10]之间的调节常数。具体问题具体分析,可以先确定一个小一点的隐层节点数,逐渐增大并进行试验,找到一个最好的节点数目。

   2.newff是matlab中神经网络工具箱创建前向网络的函数,参数有很多,可以查看matlab中对newff函数的帮助信息。重要的参数就如上代码的第五行。第一个参数用来设置输入节点数,我这里将训练输入集作为参数;第二个参数为一个向量,分别设置隐层节点数和输出节点数;第三个参数分别用来设置隐层的激活

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013549416/article/details/74025977

智能推荐

在bootstrap的table表格中,设置文本内容居中_bootstrap table 文字剧中-程序员宅基地

文章浏览阅读2.9w次,点赞9次,收藏3次。可以在你需要居中的td中添加class text-center例如:```这里的内容在表格内居中了``` 或者在js中设置表格中所有内容居中,代码如下```$("td,th").addClass("text-center");```_bootstrap table 文字剧中

动态规划_动态规划方法是运筹学方法吗-程序员宅基地

文章浏览阅读1w次,点赞7次,收藏31次。1. 什么是动态规划从数学的视角来看,动态规划是一种运筹学方法,是在多轮决策过程中的最优方法。那么,什么是多轮决策呢?其实多轮决策的每一轮都可以看作是一个子问题。从分治法的视角来看,每个子问题必须相互独立。但在多轮决策中,这个假设显然不成立。这也是动态规划方法产生的原因之一。2. 最短路径问题接下来看一个非常典型的例子,最短路径问题。如下图所示:每个结点是一个位置,每条边是两个位置之间的距离。现在需要求解出一条由 A 到 G 的最短距离是多少。不难发现,我们需要求解的路线是由 A 到 G,这就_动态规划方法是运筹学方法吗

一些数组的操作技巧_清空数组改变原数组-程序员宅基地

文章浏览阅读237次。工作中大多数情况下都是对数组的操作,熟练掌握数组操作的奇淫技巧,对数组运用自如也能提高工作效率。数组去重(改变原数组)先讲两个ES6时代简单的去重方法,都是用Set结构完成: let letters = ['a', 'b', 'c', 'd', 'c', 'b', 'a']; let uniqueLetter = Array.from(new Set(letters)); console.log(uniqueLetter); let uniqueLetter1 = [_清空数组改变原数组

做leetcode过程中遇到heap-use-after-free问题的解决方法-程序员宅基地

文章浏览阅读1.6w次,点赞43次,收藏16次。heap-use-after-free背景:leetcode 25 K个一组翻转链表用了很长时间解决这个问题,过程中心态甚至有一点小小波动。问题截图:问题解释:堆在释放后使用,意思是我使用了释放后的空间吗??(看了程序没有发现问题)由于之前没有遇到过类似问题,所以选择了在网上寻找答案,看看有没有遇到相同问题的同学分享经验:发现有位同学分享的是delete之后再次使用空间,就会报相同错,可是我并没有使用delete。再找了一会发现没有能利用的,大多是对于这个错误的解释和工具使用方法,所以_heap-use-after-free

数字后端基本概念介绍——方向-程序员宅基地

文章浏览阅读1.4k次。今天要介绍的数字后端基本概念是方向的表示方法。人生在世,最重要的是方向感。那在数字后端中,我们是如何去表征各个单元的方向的呢?首先N,S,W,E就是大家熟悉的North,..._数字pr的n方向

cenos7安装python3.8和pip3最全过程_在centos7中调用python3.8后怎使用对应的pip-程序员宅基地

文章浏览阅读8.5k次。1,打开服务器的一个文件夹cd /usr/local/src2,使用wget从官网下载安装包到此文件夹在终端下输入命令:wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz3,解压安装包tar -zxvf Python-3.6.8.tgz4,进入解压的文件夹cd Python-3.6.85,编译安..._在centos7中调用python3.8后怎使用对应的pip

随便推点

uniapp 对接高德实现搜索出现地址以及保存搜索记录_vue3uniapp集成高得地图搜索地址页面-程序员宅基地

文章浏览阅读571次。uniapp 对接高德实现搜索出现地址以及保存搜索记录_vue3uniapp集成高得地图搜索地址页面

RandomUtil随机数工具类-程序员宅基地

文章浏览阅读2.1k次。package com.imooc.test;import java.util.ArrayList;import java.util.List;import java.util.Random;public class RandomUtil { /** * 在一定范围内生成给定数量的不重复随机数, 如果开始到结束的数量少于num的数量会抛出数组越界的错误,..._randomutil.randowmint

C语言实现字符串翻转_请从开始到结束完成可以反转字符串的代码段# includecstdio.h ># include <-程序员宅基地

文章浏览阅读5.3k次。题目描述: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”. 要求: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不能使用库函数。只能开辟有限个空间(空间个数和字符串_请从开始到结束完成可以反转字符串的代码段# includecstdio.h ># include < s

(六)u-boot2013.01.01 for s5pv210:《精简u-boot文件目录,定制自己的目标板》_uboot 2013 精简-程序员宅基地

文章浏览阅读4.8k次,点赞4次,收藏10次。1. 删改U-boot代码结构 把不用到的和与我们s5pv210移植无关的硬件平台代码统统删除,眼不见为净。这样代码看起来就干净利落多了。1.1.进入arch目录,删掉除arm以外的目录处理前:图1处理后:图21.2.进入arch/arm目录,将dts和imx-common这两个目录也一并删除,因为基本不会用到。处_uboot 2013 精简

在 Java 中应用设计模式 - Factory Method_java中的draw和erase方法-程序员宅基地

文章浏览阅读1.6k次。基本概念FactoryMethod是一种创建性模式,它定义了一个创建对象的接口,但是却让子类来决定具体实例化哪一个类.当一个类无法预料要创建哪种类的对象或是一个类需要由子类来指定创建的对象时我们就需要用到Factory Method 模式了.简单说来,Factory Method可以根据不同的条件产生不同的实例,当然这些不同的实例通常是属于相同的类型,具有共同的父类.Factory Metho_java中的draw和erase方法

从T7模型中取训练参数_而 vgg_normalised.t7 转化不了-程序员宅基地

文章浏览阅读4.4k次。上一章中,我们已经取出层名,层名和层名之间,是存放参数的空间,这样相当于已经给模型分了层。我们只要在层间搜索参数就可以了。第2步:搜索参数以卷积层为例:if(startsWith(TorchClassName,"nn.SpatialConvolution")){ const char *findstr[] = { "name", //名称 "dW", "dH", ..._而 vgg_normalised.t7 转化不了