【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合

前言

本文介绍利用matlab的人工神经网络App进行简单的训练和拟合

对于我们来说,这是一个黑箱子,具体原理无需知晓,只要知道需要输入什么,能够得到什么就行了。

  • 需要输入数据:input和target,这是两个矩阵
  • 能够得到:input和target之间的函数关系。

有了这个映射关系,就能用任意输入数据来预测输出数据。

例如通过地理位置、时间、城市教育水平等等数据,来预测房价

房价和(地理位置、时间、城市教育水平等)就是一个函数关系。

我们通过神经网络得到的就是这个函数关系

输 出 值 = 函 数 关 系 ( 输 入 值 ) 输出值=函数关系(输入值) =

本质上来说,就是一个拟合方法。就像最小二乘法拟合出曲线一样。只不过这个拟合方法可以拟合出任意的函数关系,不必拘泥于曲线曲面直线之类的,也不必拘泥于是否有解析式。

操作流程

1 打开MATLAB App ->Neural Net Fitting

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第1张图片【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第2张图片
或输入nftool

点击Next

2 导入数据

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第3张图片

数据有二:
1)输入数据
2)目标输出数据

我们导入例子的数据
在这里插入图片描述

选择预测房价那个数据
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第4张图片
点导入之后
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第5张图片
输入数据是一个13*506的矩阵

每一列有十三行,是一个样本点。一共506行,即506个样本点。

输出数据则是1*506的矩阵
一共506列,每一列都代表输出值

3 训练(拟合过程)

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第6张图片
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第7张图片

这里面的参数默认即可

traning表示用于训练的数据的比例
validation表示用于验证的数据的比例
test表示用于测试的数据的比例

还有个是隐藏层的神经网络数 默认为10

这个数越大,拟合精度会越大。但是会出现过拟合问题。也就是说太过精确让该函数关系失去了泛用性,在问题A上可以用,但是在和问题A相似的问题B上就用不了了。

选择训练算法
然后点击训练
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第8张图片

3 得到结果

方法1

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第9张图片

点第一个,把训练得到的函数关系保存下来

得到如下函数

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第10张图片

这个函数就是我们训练得到的函数关系了

用法也很简单
随便打开个脚本,就像用普通的函数一样用就行了
输入只需要一个,就是13列的输入数据
输出也只有一个,就是得到房价
我们随便在原始数据上改动一两个数字得到:

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第11张图片

方法2

还有一种方法,就是把得到的函数关系保存成一个变量

这里叫做net1
点击 save Results
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第12张图片

工作区出现一个叫做net1的变量,这个就是函数关系
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第13张图片怎么用呢?
用sim(net1,输入数据)即可

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第14张图片

评价结果(拟合的R值等)

在训练完成之后会弹出的

【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第15张图片
这里面Regression
就是显示R值的
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第16张图片
Error Histogram就是显示误差分布的
【MATLAB】最简单的利用MATLAB GUI人工神经网络拟合_第17张图片

结束

你可能感兴趣的:(#,MATLAB)