MATLAB神经网络工具箱使用介绍
本文介绍MATLAB软件中神经网络拟合(Neural Net Fitting)工具箱的具体使用方法。
在MATLAB人工神经网络ANN代码这篇文章中,我们介绍了MATLAB软件中神经网络(ANN)的纯代码实现;而在MATLAB软件中,其实基于神经网络拟合工具箱,就可以点点鼠标实现神经网络的回归。本文就对基于这一工具箱实现神经网络回归的具体方法加以详细讲解。
当然,在首先导入我们的训练数据时,还是需要用到几行代码的。不过这里的代码整体而言也非常简单,其实就是基于readtable()
函数,读取存储于Excel中的数据;随后,将因变量Y
与自变量X
提取出来备用。这里有一点需要注意:大家的自变量如果有多个(比如我这里就有data_NDVI
与data_Soil
两个自变量),需要将这两个自变量合并,放在一个变量X
中。
clc;
close;
clear all;
point_file="E:/LST/01_Data/Analysis/Point_Field.xlsx";
data_all=readtable(point_file);
data_Y=data_all(:,3);
data_NDVI=data_all(:,4);
data_Soil=data_all(:,5);
Y=table2array(data_Y);
N=table2array(data_NDVI);
S=table2array(data_Soil);
X=[N S];
随后,我们运行这里的代码。如下图所示,可以看到我的因变量Y
与自变量X
都准备完毕了。
接下来,我们在MATLAB软件顶部菜单中,依次选择“APP”→“Neural Net Fitting”,打开神经网络拟合工具箱。
打开后的界面如下所示。
其中,如果我们点击上图左下角的“Neural Network Start”选项,就可以来到如下图所示的“Neural Network Start”界面。可以这么理解,“Neural Network Start”是MATLAB中神经网络工具箱的一个整体的开始界面,而我们这里需要用到的神经网络拟合工具箱(Neural Net Fitting)就是该开始界面下属的其中一个工具。
言归正传,我们在上上图中点击“Next”,就可以看到如下所示的数据筛选界面。该界面就是我们用来选择输入数据(自变量)、输出数据(因变量)的地方。而无论是输入数据还是输出数据,可以看到,我们都需要用鼠标在MATLAB软件的工作区中找到对应的变量。这也是为什么在本文一开始,我们需要先执行一段代码,将数据从Excel中读取到MATLAB中去的原因。
点击选择完毕数据后,一定注意需要对数据的维度进行选择。换句话说,就是你的输入与输出数据矩阵中,不同行代表的是不同样本,还是同一样本的不同属性(不同自变量)。
随后,选择“Next”,进入验证集与测试集数据的划分界面。在这个界面中,我们需要对验证集与测试集数据的比例进行划分(为什么要划分数据这里就不再赘述啦,而且这一个界面的右侧也有每一个数据集合的作用,大家不理解的话参考一下就明白了)。一般的,在数据量比较少的情况下(我记得有说少于一百万条数据,就算数据比较少,当然肯定要看大家数据的具体情况),我们按照6:2:2
的比例进行划分即可;在数据量多的情况下,则可以按照98:1:1
的比例来划分。这里大家就依据实际情况来划分即可。
随后,点击“Next”,进入神经网络结构配置界面。在神经网络拟合工具箱中,我们仅仅只能对神经网络的隐藏层的神经元数量进行配置,而隐藏层的数量默认为1
层,且还不能修改;而在MATLAB人工神经网络ANN代码这篇文章中,通过代码,我们不仅可以对神经元数量进行调整,还可以配置隐藏层的具体层数。
这里建议大家先按照默认的神经元数量10
进行填写;等后期运行过模型几次后,根据模型的精度与运行时间,再返回这里对神经元的数量进行二次调整。
随后,点击“Next”,就进入神经网络模型的训练界面了。这里我们可以选择训练神经网络的具体算法,但一共仅仅有三个选项,包括Levenberg-Marquardt算法、Bayesian regularization算法、Scaled conjugate gradient backpropagation算法;同样是在MATLAB人工神经网络ANN代码这篇文章中,通过代码,我们可以选择的算法就有很多了,有十余种。
这里大家结合每一种算法的具体介绍,依据自己的数据实际情况来选择即可。不过一般的,应该选择第一种算法——Levenberg-Marquardt算法的场合会多一些。选择算法完毕后,点击“Train”就可以开始训练模型。
模型训练完毕后,会弹出如下所示的训练结果窗口。
且在神经网络模型的训练界面的右侧会出现精度评定指标的具体数值;数值下方的三个选项可以用来绘制拟合情况图。
如果对这个模型非常不满意,就可以多次重复训练,还可以更改隐藏层神经元数量、训练算法等进行重新建模。如果对模型大体满意,点击“Next”即可进入模型调整界面。
这个界面可以更方便地进行重复训练、修改隐藏层神经元个数、扩大或更换数据集等,从而完善大家的模型。
如果没有问题,点击“Next”即可进入解决方案部署界面(应该是这么翻译的)。这个界面听起来高深,其实说简单点,就是将我们刚刚训练好的神经网络,以不同的形式来导出。
但我对于我个人而言,这个页面其实没有很大的作用——因为这里导出的并不是纯粹的神经网络MATLAB代码,而是一些和开发、部署工具有关的函数或图表;这里或许对于开发人员而言比较有用,对于我们这种只是单纯想训练一个神经网络模型的人而言,直接跳过就可以。
随后,点击“Next”即可进入神经网络拟合工具箱的最后一个界面——结果保存界面。
这个界面是我们训练这么久神经网络模型的最终目标。首先,“Generate Scripts”一栏可以自动生成一个MATLAB代码;有了这个代码,以后我们再想对这个结构的神经网络模型进行训练,就不用再在神经网络拟合工具箱中点来点去了,直接把新的输入数据、输出数据导入到代码里,修改代码中对应的参数即可。例如,我们一直提及的MATLAB人工神经网络ANN代码这篇文章,其中的代码其实就是通过这个选项来生成的。
接下来第二个方框“Save Data to Workspace”,是对本次你训练神经网络模型过程中一些关键参数进行保存的选项。假如大家今后不想用代码来复现这个神经网络,而是想直接将训练好的模型保存下来,下一次直接用一两句代码调用它,那就选择在这里将神经网络模型对象保存下来就好(建议选择最后一项,即以结构体的格式保存全部的参数,防止之后需要某个参数了结果发现没保存)。
这里我认为有必要说明一下保存神经网络代码和神经网络参数的区别。如果我们在“Generate Scripts”一栏保存了神经网络的代码,那么今后我们调用这个代码,并不是直接调用我们本次训练好的神经网络模型,而是再用不同的数据,不通过这个神经网络拟合工具箱而是通过修改代码的方法,对神经网络模型进行调试,还可以修改模型的各项参数(比如隐藏层数量、神经元数量、训练算法等)。而如果我们在“Save Data to Workspace”一栏保存了神经网络模型这个参数,那么今后再调用这个神经网络的时候,神经网络模型里的各项参数就不会再变了,就永永远远是你现在训练好的这个参数。说得简单一点,前者是保存调试神经网络模型的代码,后者就是保存你现在训练好的这个神经网络模型。
保存完毕后,点击“Finish”即可退出神经网络拟合工具箱。此外,如果大家没有保存任何神经网络代码或参数的话,系统还会很贴心地弹出一个提示框,询问你是否确认退出。
至此,大功告成。
MATLAB神经网络工具箱使用介绍的更多相关文章
- 12.Matlab神经网络工具箱
概述: 1 人工神经网络介绍 2 人工神经元 3 MATLAB神经网络工具箱 4 感知器神经网络 5 感知器神经网络 5.1 设计实例分析 clear all; close all; P=[ ; ]; ...
- Matlab神经网络工具箱学习之一
1.神经网络设计的流程 2.神经网络设计四个层次 3.神经网络模型 4.神经网络结构 5.创建神经网络对象 6.配置神经网络的输入输出 7.理解神经网络工具箱的数据结构 8.神经网络训练 1.神经网络 ...
- matlab神经网络工具箱创建神经网络
为了看懂师兄的文章中使用的方法,研究了一下神经网络 昨天花了一天的时间查怎么写程序,但是费了半天劲,不能运行,百度知道里倒是有一个,可以运行的,先贴着做标本 % 生成训练样本集 clear all; ...
- Matlab神经网络工具箱学习之二
螃蟹的分类 这个例子的目的是根据螃蟹的品种.背壳的长宽等等属性来判断螃蟹的性别,雄性还是雌性. 训练数据一共有六个属性: species, frontallip, rearwidth, length, ...
- matlab 神经网络工具箱的实用
0. 其他处理 计时: tic net = train(net, X, y); toc 1. 一个简单的 demo(单层感知器) P = [1, 1, 1, 1, 0, 0, 0, 0; 0, 0, ...
- Matlab的BP神经网络工具箱及其在函数逼近中的应用
1.神经网络工具箱概述 Matlab神经网络工具箱几乎包含了现有神经网络的最新成果,神经网络工具箱模型包括感知器.线性网络.BP网络.径向基函数网络.竞争型神经网络.自组织网络和学习向量量化网络.反馈 ...
- MathWorks官方消息:神经网络工具箱不能编译
各位会员大家好,大家关心的问题,我已经大部分得到答案. 10月25号-27号我访问了MathWorks公司在波士顿的总部,大家经常关心的问题,我大部分都得到了答案. 关于神经网络工具箱,我与Matla ...
- MATLAB的神经网络工具箱介绍
一.使用matlab2010b以后的版本会有完整的神经网络工具箱,使用nnstart可以调出toolbox,然后选择需要的功能,导入数据,选择训练参数和每层神经元个数,最后训练会输出网络与结果. 二. ...
- paper 75:使用MATLAB的神经网络工具箱创建神经网络
% 生成训练样本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.5 ...
- MATLAB神经网络原理与实例精解视频教程
教程内容:<MATLAB神经网络原理与实例精解>随书附带源程序.rar9.随机神经网络.rar8.反馈神经网络.rar7.自组织竞争神经网络.rar6.径向基函数网络.rar5.BP神经网 ...
随机推荐
- LlamaIndex 是什么
LlamaIndex 是一个基于 LLM(大语言模型)的应用程序数据框架,适用于受益于上下文增强的场景. 这类 LLM 系统被称为 RAG(检索增强生成)系统. LlamaIndex 提供了必要的抽象 ...
- [Go] 注意 go build -o <output> 选项的准确含义
-o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...
- [Contract] Solidity 合约使用 truffle 部署到测试网和主网
使用 truffle 发布到非本地的以太坊主网或者测试网时,需要提供钱包的助记词或私钥. 首先安装 truffle 组件:npm install @truffle/hdwallet-provider ...
- 2018-7-15-WPF-在-DrawingContext-的-push-如何使用
title author date CreateTime categories WPF 在 DrawingContext 的 push 如何使用 lindexi 2018-7-15 15:51:0 + ...
- Oracle和达梦:获取更新随机时间sql
需求 1.修改数据库中表的创建.更新时间,日期固定,时间随机(日期也可以随机): 2.拿到这些sql去数据库执行就行了. 前提 -- 生成8-12间的随机数(小数) SELECT DBMS_RANDO ...
- 【简说Python WEB】Jinja2模板
目录 [简说Python WEB]Jinja2模板 目前环境的代码树 抽离出来的Html模板 渲染模板 条件语句 循环语句 系统环境:Ubuntu 18.04.1 LTS Python使用的是虚拟环境 ...
- 【Oracle】Oracle数据库多实例安装
需求:因为需要从RAC的多实例迁移至单虚拟机的多实例.因此,简要概述一下,如何安装数据库的多实例. 不管是Oracle 11g还是10g的多实例,其基本思路都是一致的. 1.调用dbca 在root账 ...
- Zeppelin未授权访问 getshell
Zeppelin未授权访问 getshell 1.漏洞简介 Apache Zeppelin是一个让交互式数据分析变得可行的基于网页的notebook.Zeppelin提供了数据可视化的框架. Zepp ...
- gprMax电磁波正演模拟方法
文章首发于:https://blog.zhaoxuan.site/archives/37.html: 第一时间获取最新文章请关注博客个人站:https://blog.zhaoxuan.site. 目录 ...
- linux下的开机启动
使用systemctl命令,systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 据说在CentOS7.0后,不再使用service, ...