关于数据挖掘:MATLAB中用BP神经网络预测人体脂肪百分比数据附代码数据

2次阅读

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

原文链接: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(491)

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

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

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

net = fitnet(15);
view(net)

当初,网络曾经筹备好被训练了。样本被主动划分为训练集、验证集和测试集。训练集被用来训练网络。只有网络在验证集上持续改良,训练就会持续。测试集提供了一个齐全独立的网络准确性的衡量标准。


点击题目查阅往期内容

【视频】CNN(卷积神经网络)模型以及 R 语言实现回归数据分析

左右滑动查看更多

01

02

03

04

神经网络训练工具显示正在训练的网络和用于训练的算法。它还显示了训练期间的训练状态,进行训练的规范将以绿色突出显示。

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

 train(net,X,T);

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

plotperform(tr)

测试神经网络

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

mse(net,testT,testY)

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

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

plot(T,Y)

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

e = T - Y;
hist(e)

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


点击文末 “浏览原文”

获取全文残缺代码数据资料。

本文选自《MATLAB 中用 BP 神经网络预测人体脂肪百分比》。

点击题目查阅往期内容

【视频】CNN(卷积神经网络)模型以及 R 语言实现回归数据分析
Python 用 LSTM 长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析
深度学习实现自编码器 Autoencoder 神经网络异样检测心电图 ECG 工夫序列 spss modeler 用决策树神经网络预测 ST 的股票
Python 中 TensorFlow 的长短期记忆神经网络 (LSTM)、指数挪动平均法预测股票市场和可视化
RNN 循环神经网络、LSTM 长短期记忆网络实现工夫序列长期利率预测
联合新冠疫情 COVID-19 股票价格预测:ARIMA,KNN 和神经网络工夫序列剖析
深度学习:Keras 应用神经网络进行简略文本分类剖析新闻组数据
用 PyTorch 机器学习神经网络分类预测银行客户散失模型
PYTHON 用 LSTM 长短期记忆神经网络的参数优化办法预测工夫序列洗发水销售数据
Python 用 Keras 神经网络序列模型回归拟合预测、准确度检查和后果可视化
R 语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与后果评估可视化
深度学习:Keras 应用神经网络进行简略文本分类剖析新闻组数据
Python 用 LSTM 长短期记忆神经网络对不稳固降雨量工夫序列进行预测剖析
R 语言深度学习 Keras 循环神经网络 (RNN) 模型预测多输入变量工夫序列
R 语言 KERAS 用 RNN、双向 RNNS 递归神经网络、LSTM 剖析预测温度工夫序列、IMDB 电影评分情感
Python 用 Keras 神经网络序列模型回归拟合预测、准确度检查和后果可视化 R 语言中的神经网络预测工夫序列:多层感知器(MLP)和极限学习机(ELM)数据分析报告
R 语言深度学习:用 keras 神经网络回归模型预测工夫序列数据
Matlab 用深度学习长短期记忆(LSTM)神经网络对文本数据进行分类
R 语言 KERAS 深度学习 CNN 卷积神经网络分类辨认手写数字图像数据(MNIST)
MATLAB 中用 BP 神经网络预测人体脂肪百分比数据
Python 中用 PyTorch 机器学习神经网络分类预测银行客户散失模型
R 语言实现 CNN(卷积神经网络)模型进行回归数据分析
SAS 应用鸢尾花 (iris) 数据集训练人工神经网络 (ANN) 模型
【视频】R 语言实现 CNN(卷积神经网络)模型进行回归数据分析
Python 应用神经网络进行简略文本分类
R 语言用神经网络改良 Nelson-Siegel 模型拟合收益率曲线剖析
R 语言基于递归神经网络 RNN 的温度工夫序列预测
R 语言神经网络模型预测车辆数量工夫序列
R 语言中的 BP 神经网络模型剖析学生问题
matlab 应用长短期记忆(LSTM)神经网络对序列数据进行分类
R 语言实现拟合神经网络预测和后果可视化
用 R 语言实现神经网络预测股票实例
应用 PYTHON 中 KERAS 的 LSTM 递归神经网络进行工夫序列预测
python 用于 NLP 的 seq2seq 模型实例: 用 Keras 实现神经网络机器翻译
用于 NLP 的 Python:应用 Keras 的多标签文本 LSTM 神经网络分类

正文完
 0