关于算法:MATLAB中用BP神经网络预测人体脂肪百分比数据

6次阅读

共计 1937 个字符,预计需要花费 5 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=22739 

这个例子阐明了一个函数拟合的神经网络如何依据测量后果来预计脂肪百分比(BFP)。

问题:预计脂肪百分比

在这个例子中,咱们试图建设一个神经网络来预计一个人的脂肪百分比,这个人由 13 个物理属性形容。

  • 年龄
  • 体重
  • 身高
  • 颈围
  • 胸围
  • 腹部周长
  • 臀围
  • 大腿周长
  • 膝盖周长
  • 踝关节周长
  • 肱二头肌 (舒展) 周长
  • 前臂周长
  • 腕围

这是一个拟合问题的例子,其中输出与相干的指标输入相匹配,咱们心愿创立一个神经网络,它不仅能够预计已知的指标,给定已知的输出,而且还能够泛化,来精确预计未知数据的后果。

为什么是神经网络?

神经网络在函数拟合问题上十分杰出。一个有足够多的元素(称为神经元)的神经网络能够以任意的精度拟合任何数据。它们特地适宜于解决非线性问题。鉴于事实世界的非线性性质,如身材脂肪的减少,神经网络是解决该问题的不错办法。

十三个物理属性将作为神经网络的输出,而体脂百分比将是指标。

该网络通过应用曾经晓得体脂百分比的人体数据来建设模型,来训练它产生目标值。

筹备数据

函数拟合的数据是两个矩阵,即输出矩阵 X 和指标矩阵 T。
输出矩阵的每一列将有 13 个元素,代表一个已知脂肪百分比的身材数据。
指标矩阵的每一对应列将有一个元素,代表脂肪百分比。

加载数据集后,咱们能够查看输出 X 和指标变量 T 的大小。

请留神,X 和 T 都有 252 列。这些代表了 252 种体质(输出变量)和相干的体脂百分比(指标变量)。

输出矩阵 X 有 13 行,代表 13 个属性。指标矩阵 T 只有一行,因为对于每个例子咱们只有一个冀望的输入,即脂肪百分比。

size(X)
size(T)

用神经网络拟合函数

下一步是创立一个神经网络,它将学习预计脂肪百分比。

因为神经网络以随机的初始权重开始,这个例子每次运行的后果都会略有不同。设置随机种子是为了防止这种随机性。

setdemorandstream(82)

两层(即一个暗藏层)前馈神经网络能够拟合任何输出 - 输入关系,只有暗藏层有足够的神经元。不属于输入层的层被称为暗藏层。

在这个例子中,咱们将尝试应用由 15 个神经元组成的繁多暗藏层。一般来说,更难的问题须要更多的神经元,兴许须要更多的层。较简略的问题则须要较少的神经元。

输出和输入的大小为 0,因为神经网络还没有被配置为与咱们的输出和指标数据相匹配。将在网络被训练时进行。

net = fitnet(15);
view(net)

当初,网络曾经筹备好被训练了。样本被主动划分为训练集、验证集和测试集。训练集被用来训练网络。只有网络在验证集上持续改良,训练就会持续。测试集提供了一个齐全独立的网络准确性的衡量标准。
神经网络训练工具显示正在训练的网络和用于训练的算法。它还显示了训练期间的训练状态,进行训练的规范将以绿色突出显示。

底部的按钮能够关上有用的图表,这些图表能够在训练中和训练后关上。算法名称和绘图按钮旁边的链接能够关上对于这些主题的文档。

 train(net,X,T);

要看网络的性能在训练中是如何进步的,能够点击训练工具中的 “ 性能 “ 按钮。
性能是以均方误差来掂量的,并以对数比例显示。随着网络的训练,误差迅速减小。训练集、验证集和测试集的性能别离显示。最终的网络是在验证集上体现最好的网络。

plotperform(tr)

测试神经网络

当初能够测量训练后的神经网络的均方误差与测试样本的关系。咱们能够理解该网络在利用于实在数据时的体现如何。

mse(net,testT,testY)

另一个掂量神经网络对数据拟合水平的办法是回归图。这里的回归图是在所有样本中绘制的。
回归图显示了理论网络输入与目标值的关系。如果网络曾经学会了很好地拟合数据,那么这个输入 - 指标关系的线性拟合应该与图的左下角和右上角严密相交。

如果不是这样,那么进一步的训练,或者训练一个有更多暗藏神经元的网络。

plot(T,Y)

另一个掂量神经网络对数据的拟合水平的办法是误差直方图。这显示了误差大小是如何散布的。通常状况下,大多数误差靠近零,很少有误差远离零。

e = T - Y;
hist(e)

这个例子阐明了如何设计一个神经网络,从身材特色来预计脂肪百分比。


最受欢迎的见解

1.r 语言用神经网络改良 nelson-siegel 模型拟合收益率曲线剖析

2.r 语言实现拟合神经网络预测和后果可视化

3.python 用遗传算法 - 神经网络 - 含糊逻辑控制算法对乐透剖析

4. 用于 nlp 的 python:应用 keras 的多标签文本 lstm 神经网络分类

5. 用 r 语言实现神经网络预测股票实例

6.R 语言基于 Keras 的小数据集深度学习图像分类

7. 用于 NLP 的 seq2seq 模型实例用 Keras 实现神经机器翻译

8.python 中基于网格搜索算法优化的深度学习模型剖析糖

9.matlab 应用贝叶斯优化的深度学习

正文完
 0