掌握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. tar从压缩包里解压出指定文件
  2. 用Python建设企业认证和权限控制平台
  3. 一键启动Zookeeper集群
  4. gradle ant_使用Gradle引导旧式Ant构建
  5. 《大数据》2015年第3期“研究”——社交网络影响力传播研究(上)
  6. Centos7下python3安装ipython
  7. 删除visual studio最近打开的项目列表
  8. web浏览器_2019版 web 浏览器现状
  9. 惊!史上最佳GAN现身,超真实AI假照片,行家们都沸腾了
  10. mysql 函数无法访问_mysql 中出现:不能打开到主机的连接,在端口3306: 连接失败...
  11. LINUX编译:通过prefix把编译结果输出到指定位置
  12. 浅析:通过自定义DSL实现一个序列号生成器
  13. ADS2022学习笔记(二)
  14. windows环境下vue开发环境搭建
  15. 轻松解决vscode官网下载慢问题
  16. 冥想第二百五十六天。
  17. 2019 ICPC 沈阳站 游记
  18. mysql数据库常用存储引擎的区别
  19. 程序员晒工资,工作 3 年被应届生倒挂!网友:工作 8 年被你倒挂!
  20. 深度学习专业术语之英文介绍——附含历届ILSVRC冠亚军结果

热门文章

  1. windows10飞思卡尔BDM驱动安装教程
  2. 解决eslint 报错的方法
  3. 这两款App为何在春季异军突起?核心原因在于生态流量经营
  4. 安卓8:Andorid常见问题-图片插入后,列表内有波浪线
  5. 《炬丰科技-半导体工艺》氮化栅氧化物的表面制备挑战
  6. MYSQL limit用法(*)
  7. asp.net电子地图
  8. 大数据时代 科学数据管理成新命题
  9. 无线高清影音传输方案
  10. 计算机专业的三行情书,计算机科学学院成功举办“三行情书”活动