bp神经网络预测值和实际值差距很大,bp神经网络预测值都是一样的
原文链接:http://tecdat.cn/p=22739原文来源:拓端数据部落微信官方账号
该示例显示了函数拟合神经网络如何根据测量结果来估计脂肪百分比(BFP)。
问题:估算肥胖率在这个例子中,我们尝试建立一个神经网络来估算13个身体属性所描述的人的肥胖率。
年龄、身高、脖子、腰围、大腿、膝盖、脚踝、肱二头肌(拉伸)、周长、前臂周长、手腕周长的拟合问题的例子,其中输入匹配相关的目标输出。我们希望建立一个神经网络,它不仅可以估计已知的目标,提供已知的输入,还可以进行泛化,精确估计未知数据的结果。
为什么是神经网络?神经网络非常擅长函数拟合。具有足够数量的元素(称为神经元)的神经网络可以以任何精度拟合任何数据。这些特别适合解决非线性问题。考虑到现实世界的非线性,比如体脂增长,神经网络是解决这个问题的好方法。
神经网络输入三个身体属性,体脂百分比为目标。
这种网络训练使用已知体脂率的人体数据来制作模型,生成目标值。
数据函数拟合要准备的数据是两个矩阵:输入矩阵X和目标矩阵t。
输入矩阵的每一列有13个元素,代表已知脂肪率的身体数据。
目标矩阵中的每个相应列都有一个表示脂肪百分比的元素。
加载数据集后,可以检查输入X和目标变量t的大小。
注意X和T有252列。它们代表252种体质(输入变量)和相关体脂率(目标变量)。
输入矩阵X有13行,代表13个属性。目标矩阵T只有一行。因为每个例子的期望输出,也就是脂肪率,只有一个。
是尺寸(x)大小(x)
在神经网络中拟合函数的下一步是创建一个学习估计脂肪率的神经网络。
因为神经网络以随机的初始权重开始,所以此示例的结果在每次运行时都会略有不同。设置随机种子是为了避免这种随机性。
Setdemorandstream(82)两层(即一个隐层)前馈神经网络可以匹配任何输入输出关系,只要隐层有足够多的神经元。不属于输出图层的图层称为隐藏图层。
在本例中,我们将尝试使用由15个神经元组成的单一隐藏层。一般来说,更困难的问题需要更多的神经元和可能更多的层。简单的问题是神经元的数量会减少。
并且输入和输出的大小是0。因为神经网络尚未配置为匹配输入和目标数据。当网络被训练时。
net=fitnet(15;是视图(网络)
现在,互联网已经准备好接受训练了。实例被自动分为训练集、验证集和测试集。培训用于网络培训。只要网络在验证集中继续改进,训练就会继续。测试集提供完全独立的网络正确性测量。
神经训练工具显示被训练的网络和用于训练的算法。还会显示训练中的训练状态,停止训练的条件会以绿色突出显示。
下面的按钮可以打开方便的图表,您可以在训练期间和训练后打开。单击算法名称和绘图按钮旁边的链接,打开有关这些主题的文档。
train(net,x,t);
要查看网络性能在培训过程中如何提高,请单击培训工具中的性能按钮。
以性能的均方误差衡量,并以对数刻度显示。随着网络的训练,误差迅速减小。训练集、验证集和测试集的性能将分别显示。最终网络是验证集中的最佳网络。
打印性能(tr))。
测试神经网络可以测量训练好的神经网络的均方误差与测试样本之间的关系。你可以理解这个网络是如何应用到实际数据中的。
MSe(网络,测试,测试))。
另一种测量神经网络数据拟合优度的方法是回归图。这里的回归图是所有样本的。
回归图显示了实际网络输出和目标值之间的关系。如果网络学会正确地拟合数据,那么这种输出-目标关系的线性拟合必须与图形的左下角和右上角紧密相交。
否则,进一步训练或用更多的隐藏神经元训练网络。
Print (t,y))。
衡量神经网络对数据拟合程度的另一种方法是误差直方图。这显示了误差是如何分布的。通常,大多数误差接近于零,误差很少偏离零。
e=T-Y;是hist(e)
这个例子显示了根据身体特征估计脂肪率的神经网络设计方法。
最流行的观点
1.r语言利用神经网络改进nelson-siegel模型进行收益率曲线拟合分析。
2.r语言拟合神经网络预测及结果可视化
3.基于python遗传算法-神经网络-模糊逻辑控制算法的乐透分析
4.基于python:keras的多标记文本lstm神经网络分类
5.r语言神经网络股票预测示例
6.基于R语言Keras的小数据集深度学习图像分类
7.自然语言处理seq2seq模型在Keras上实现神经机器翻译的例子
8.基于8.python中网格搜索算法优化的深度学习模型分析糖
9.matlab使用贝叶斯优化进行深度学习。