首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MATLAB中用BP神经网络预测人体脂肪百分比数据

问题:估计脂肪百分比

在这个例子中,我们试图建立一个神经网络来估计一个人的脂肪百分比,这个人由13个物理属性描述。

年龄

体重

身高

颈围

胸围

腹部周长

臀围

大腿周长

膝盖周长

踝关节周长

肱二头肌(伸展)周长

前臂周长

腕围

这是一个拟合问题的例子,其中输入与相关的目标输出相匹配,我们希望创建一个神经网络,它不仅可以估计已知的目标,给定已知的输入,而且还可以泛化,来准确估计未知数据的结果。

为什么是神经网络?

神经网络在函数拟合问题上非常出色。一个有足够多的元素(称为神经元)的神经网络可以以任意的精度拟合任何数据。它们特别适合于解决非线性问题。鉴于现实世界的非线性性质,如身体脂肪的增加,神经网络是解决该问题的不错方法。

相关视频

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

该网络通过使用已经知道体脂百分比的人体数据来建立模型,来训练它产生目标值。

准备数据

函数拟合的数据是两个矩阵,即输入矩阵X和目标矩阵T。

输入矩阵的每一列将有13个元素,代表一个已知脂肪百分比的身体数据。

目标矩阵的每一对应列将有一个元素,代表脂肪百分比。

加载数据集后,我们可以查看输入X和目标变量T的大小。

请注意,X和T都有252列。这些代表了252种体质(输入变量)和相关的体脂百分比(目标变量)。

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

用神经网络拟合函数

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

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

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

在这个例子中,我们将尝试使用由15个神经元组成的单一隐藏层。一般来说,更难的问题需要更多的神经元,也许需要更多的层。较简单的问题则需要较少的神经元。

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

现在,网络已经准备好被训练了。样本被自动划分为训练集、验证集和测试集。训练集被用来训练网络。只要网络在验证集上继续改进,训练就会继续。测试集提供了一个完全独立的网络准确性的衡量标准。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221107A05F6D00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券