掌握BP算法的手工计算,用MATLAB工具箱编程实现模型仿真并用测试数据对性别进行预测。
测试数据1:身高(162cm),体重(56kg),性别(女)。
测试数据2:身高(172cm),体重(75kg),性别(男)。

1. 数据预处理

将原始数据进行处理,性别为“男”设为1,为“女”设为0,应用“=IF(Bi=“男”,1,0)”公式在excel中完成数据预处理的操作,处理后部分数据如下表1。

编号 性别 身高 体重 output
1 174.2 91.9 1
2 156 57.6 0
3 151.7 59.9 0
4 181.5 107.2 1
5 169.1 55.6 1
6 175.6 90.6 1
7 174.3 73 1
8 175.4 67.9 1

2. 设计网络结构

设计具有一层隐含层,隐含层为2个神经单元,输入层有2个神经单元,输出层有1个神经单元的神经网络,网络结构如下图1。

3. 手工编码

根据神经网络的算法原理在matlab中编写性别分类原理的手工代码,其中初始权值设置为(-2.4/F, 2.4/F)之间的随机数,F为所连单元的输入端个数,初始阈值设置为(-0.5, 0.5)间的随机数,学习率设置为0.01,期望误差设置为10-3,迭代次数设置为2000,最后通过测试样本进行模型的检验,具体代码如下:

clear;
clc;%训练模块
data = xlsread('student.xlsx');
P0 = data(:, 3 : 4);
T = data(:, 5);
[pn, minp, maxp] = premnmx(P0');
P = pn';
col = size(P, 1);
w = -1.2 + 2.4*rand(1, 6);
[miu, v, E] = deal(zeros(1, 3));
b = -0.5 + rand(1, 3);
yita = 0.01;
goal = 0.001;
error = [];
for epochs = 1: 2000s = [];for k = 1: colmiu(1) = P(k, 1)*w(1) + P(k, 2)*w(2) + b(1);v(1) = 1/(1 + exp(-miu(1)));miu(2) = P(k, 1)*w(3) + P(k, 2)*w(4) + b(2);v(2) = 1/(1 + exp(-miu(2)));miu(3) = v(1)*w(5) + v(2)*w(6) + b(3);v(3) = 1/(1 + exp(-miu(3)));E(3) = v(3)*(1 - v(3))*(T(k) - v(3));E(2) = v(2)*(1 - v(2))*E(3)*w(6);E(1) = v(1)*(1 - v(1))*E(3)*w(5);w(6) = w(6) + yita*E(3)*v(2);w(5) = w(5) + yita*E(3)*v(1);for m = 1: 4w(m) = w(m) + yita*E(ceil(m/2))*P(k, 2-rem(m,2));endb = b + yita*E;s = [s, v(3)];enderror0 = mse(s - T');if error0 <goalbreakelseerror = [error error0];end
end
figure;
%绘制迭代结束时预测结果分布图
for n = 1: size(s, 2)  if s(n)>0.5plot(n, s(n), '+');hold on;elseplot(n, s(n), 'o');hold on;end
end
%绘制最大均方误差曲线图
figure;
plot(1:size(error, 2), error);%测试模块
output = [];
testp0 = [162 56; 172 75];
[testpn] = premnmx(testp0', 1);
testp = testpn';
for testk = 1: 2miu(1) = testp(testk, 1)*w(1) + testp(testk, 2)*w(2) + b(1);v(1) = 1/(1 + exp(-miu(1)));miu(2) = testp(testk, 1)*w(3) + testp(testk, 2)*w(4) + b(2);v(2) = 1/(1 + exp(-miu(2)));miu(3) = v(1)*w(5) + v(2)*w(6) + b(3);v(3) = 1/(1 + exp(-miu(3)));output = [output, v(3)];
end
disp("预测结果为:");
disp(output);

执行程序得到最大均方误差曲线如图2,预测结果分布如图3。


通过图2可知共经过了2000次迭代,最终的最大均方误差为0.08左右。通过此网络验证测试样本,得到的结果为0.0096和0.9882,可以判定第一个样本性别为“女”,第二个为“男”,与样本所给结果一致。

MATLAB手工实现BP神经网络相关推荐

  1. MATLAB实现基于BP神经网络的手写数字识别+GUI界面+mnist数据集测试

    文章目录 MATLAB实现基于BP神经网络的手写数字识别+GUI界面+mnist数据集测试 一.题目要求 二.完整的目录结构说明 三.Mnist数据集及数据格式转换 四.BP神经网络相关知识 4.1 ...

  2. matlab流量预测模型,基于MATLAB工具箱的BP神经网络年径流量预测模型研究——以塔城地区乌拉斯台河为例...

    水 文 JOURNAL OF CHINA HYDROLOGY 第28卷第1期 2008年2月 Vol.28 No.1 Feb., 2008 塔城地区位于新疆维吾尔自治区西北边陲, 地处中纬, 虽属内陆 ...

  3. 基于Matlab平台的BP神经网络进行数据拟合

    基于Matlab平台的BP神经网络进行数据拟合 上次讨论了基于Hopfield神经网络的数字识别,BP(Back Propagation)神经网络也可以进行相关的数字识别如手写数字识别等,由于BP神经 ...

  4. bp神经网络matlab设计实例,bp神经网络matlab实例(bp神经网络matlab实例).doc

    bp神经网络matlab实例(bp神经网络matlab实例).doc bp神经网络matlab实例(bp神经网络matlab实例)Case 1 training BP network by momen ...

  5. 基于Matlab的多层BP神经网络在非线性函数拟合中的应用

    本图文详细介绍了如何利用Matlab神经网络工具箱实现多层BP神经网络对非线性函数的拟合.

  6. bp神经网络matlab实例蚊子,bp神经网络matlab实例

    bp神经网络matlab实例 采用 Matlab 工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考 Matlab 帮助文档.实例一% 例 1 采用动量梯度下降算法训练 BP 网 ...

  7. 利用MATLAB 2016a进行BP神经网络的预测(含有神经网络工具箱)

    最近一段时间在研究如何利用预测其销量个数,在网上搜索了一下,发现了很多模型来预测,比如利用回归模型.时间序列模型,GM(1,1)模型,可是自己在结合实际的工作内容,发现这几种模型预测的精度不是很高,于 ...

  8. 用matlab实现用Bp神经网络对iris数据集进行分类(以及影响分类性能的参数条件)

    数据集已上传,结尾链接下载即可!!! 一.实验内容 Iris鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个属性,分别对应花萼长度,花 ...

  9. 使用MATLAB实现基于BP神经网络训练的手写字母识别程序

    前言 大三的时候利用MATLAB搭建了一个基于BP神经网络框架的手写字母识别程序,其中使用了EMNIST数据集进行训练和测试,可实时对手写输入样本进行识别,并返回两个最可能的结果,过程中可继续添加样本 ...

最新文章

  1. Makefile文件和shell脚本
  2. [转]C#开发ActiveX控件,.NET开发OCX控件案例
  3. SVN 常用操作命令 使用笔记
  4. error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format
  5. 详细推导PCA算法(包括算法推导必备的知识)
  6. 公布 | 中国图象图形学学会首批Fellow名单公布
  7. 第二十九章:学校招生
  8. 10元/小时?大涨价后,共享充电宝行业迎来“大地震”!
  9. 该如何清理手机的垃圾?
  10. LTE学习:RV(冗余版本)
  11. Mplayer 的编译
  12. Java实现mds降维_MDS降维方法的目标是要找到数据的低维表示,使得:
  13. Python基础之字符串
  14. python二元函数图像在线绘制_Python之Numpy:二元函数绘制/三维数据可视化/3D
  15. 【日语】动词的九种变形
  16. 百度云盘电影无字幕,如何寻找字幕加字幕?
  17. 隧道测量快速坐标反程序48004850计算器
  18. 极光小课堂 | PostCss浅析之词法分析
  19. 10分钟教你搭建一个好玩的Python全文搜索引擎
  20. Vue3 探坑之旅3

热门文章

  1. 冥想====》超级右脑
  2. 2012自学CCNP路由与交换之三网络设备造型及验收
  3. 中国DevOps应用发展研究 附下载
  4. 老电脑如何利用云服务器提升性能,把旧电脑变成云电脑?让手机运行大型PC游戏...
  5. Mysql排序的特性详情
  6. was服务器配置文件路径,websphere(was)配置文件
  7. 2022-2028全球与中国氦气压缩机市场现状及未来发展趋势
  8. 用实际项目分析高并发-抢霸王餐(川味观)
  9. YAML格式检查与转换
  10. 【opencv450 Image Processing】Histogram Calculation直方图计算