MATLAB练习——BP神经网络预测成绩
数据整理
假设原成绩单如下,共29人,25门课:
要预测其中一门概率论的成绩。(我的那一行)
每一列是一组输入训练集,行数代表输入层神经元个数,列数代表输入训练集组数,导入MATLAB
由于是要预测其中一科概率论的成绩,还应在转置前删除一列概率论的全部成绩。
最后加上要输入的数据,对应矩阵大小为:
模型建立
BP网络模型
BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。
BP网络由输入层、隐层和输出层组成,隐层可以有一层或多层,图2是m×k×n的三层BP网络模型,网络选用S
型传递函数 f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+e−x1, 通过反传误差函数 E = ∑ i ( T i + O i ) 2 2 E=\frac{ \sum\limits_{i}(Ti+Oi)^2}{2} E=2i∑(Ti+Oi)2 (Ti为期望输
出、Oi为网络的计算输出),不断调节网络权值和阈值使误差函数E达到极小。
BP网络具有高度非线性和较强的泛化能力,但也存在收敛速度慢、迭代步数多、易于陷入局部极小和全局搜索能力差等缺点。可以先用遗传算法对“BP网络”进行优化在解析空间找出较好的搜索空间,再用BP网络在较小的搜索空间内搜索最优解。
选取隐层神经元个数的问题上参照了以下的经验公式: l = n + m + a l = \sqrt{n+m}+a l=n+m +a,n为输入层数,m为输出层数,a为[1,10]内的常数。
选取激励函数
BP神经网络通常采用Sigmoid可微函数和线性函数作为网络的激励函数。本次预测选择S型正切函数tansig作为隐层神经元的激励函数。而由于网络的输出归一到[ -1, 1]范围内, 因此预测模型选取S 型对数函数tansig作为输出层神经元的激励函数。
模型实现
预测选用MATLAB中的神经网络工具箱进行网络的训练, 预测模型的具体实现步骤如下:
将训练样本数据归一化后输入网络, 设定网络隐层和输出层激励函数分别为tansig和线性传递函数, 网络训练函数为trainlm,隐层神经元数初设为12。设定网络参数。网络迭代次数epochs为5000次, 期望误差goal为0.00000001, 学习速率lr为0. 01。
clc,clear,close all
load cjlist0 %导入数据
load cjlist1
load cjlist2
P=scores;
T=Prob;
[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);
%创建网络
net=newff(minmax(P),[24,11,1],{'tansig','tansig','purelin'},'trainlm'); %用trainlm来作为训练函数
%输入层数24,隐含层数取12,输出层数1
net.trainParam.epochs = 5000; %设置训练次数,达到次数会终止训练
net.trainParam.goal=0.0000001; %设置收敛误差,低于误差会终止训练
[net,tr]=train(net,p1,t1); %训练网络
a=myscores; %输入数据
a=premnmx(a); %将输入数据归一化
b=sim(net,a); %放入到网络输出数据
%将得到的数据反归一化得到预测数据
c=postmnmx(b,mint,maxt)
运行下试试:
真实成绩也就76…
参考例程:
数据预测之BP神经网络具体应用以及matlab代码
BP神经网络的预测模型
MATLAB练习——BP神经网络预测成绩相关推荐
- MATLAB中用BP神经网络预测人体脂肪百分比数据
原文链接:http://tecdat.cn/?p=22739 这个例子说明了一个函数拟合的神经网络如何根据测量结果来估计脂肪百分比(BFP) (点击文末"阅读原文"获取完整代码数据 ...
- MATLAB实现BP神经网络预测汽油辛烷值
MATLAB实现BP神经网络预测汽油辛烷值 今天学习的新内容,在这里记录一下便于日后复习 1.清空变量,做好准备工作 %% I. 清空环境变量 clear all clc 2.导入数据,划分前50个为 ...
- bp神经网络预测未来数据,bp神经网络数据预处理
如何建立bp神经网络预测 模型 建立BP神经网络预测 模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测20 ...
- 提高bp神经网络预测精度,bp神经网络数据预处理
bp神经网络对输入数据和输出数据有什么要求 p神经网络的输入数据越多越好,输出数据需要反映网络的联想记忆和预测能力.BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数 ...
- bp神经网络预测模型python,r语言bp神经网络预测
如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...
- python实现bp神经网络预测,神经网络算法预测彩票
神经网络预测双色球有多靠谱 你好,这东西没人会预测.如果真会预测,早就成为百万富翁了.预测这东西我早就不信了,上一回在网站上,看别人预测,结果买了,连一个号码都没对上.楼主真要买,就权当是献爱心吧. ...
- bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx
%bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...
- matlab里BP神经网络实现实例2汽油辛烷值预测
一.引入 1.首先得到数据,比如数据是从exce导入,也可以是现成的.mat文件.60组汽油样品,利用傅里叶近红外变换光谱仪对其进行扫描,扫描范围900~1700nm,扫描间隔2nm,每个样品的光谱曲 ...
- matlab耀输,基于 Matlab的BP神经网络在太阳耀斑级别预测中的应用
第 42卷 第 3期 2014年 5月 河南师范大学学报(自然科学版) Journal of Henan Normal University(Natural Science Edition) Z.42 ...
最新文章
- 更新词汇至Unigram词表进行识别
- CVPR 2021 | Facebook提出FP-NAS:搜索速度更快、分类精度更高、性能更好
- 基于python3的Opencv(一)-打开摄像头显示图像
- 谷歌上线数据搜索引擎 Dataset Search
- maven配置报错以及The JAVA_HOME environment variable is not defined correctly的解决方法
- Spring Boot 集成 Redis 实现缓存机制
- 高性能MySQL笔记——MySQL基础(一)
- mysql建立数据库连接时出错_建立数据库连接时出错什么意思(手把手教你如何建立数据库连接)...
- ARTS Share6 miniUI getData(true,false)获取form表单数据问题
- 教您盘点8款最好用的免费远程桌面工具(附地址)
- vbs教程(1):弹窗
- Android 根据名字获取经纬度,Android 根据城市获取经纬度 适配Android 7.0 、Android 8.0...
- 《诗经·王风·黍离》
- Are you trying to connect to a TLS-enabled daemon without TLS?
- 鸿蒙入门手册(二):应用是怎样运行的
- jtest准考证打印
- 基于区块链的学生课程成绩查询系统
- 多线程代码,性能怎么优化!
- 学军OJ题解——诸葛的理想
- 阿里技术详解图册发布
热门文章
- 正则表达式——IP地址匹配
- 分享 小和尚卖石头 正确的人生定位
- 顶级游戏设计→构造游戏世界
- ubuntu利用.bin文件安装并配置jdk成功
- 110万个账户被黑客窃取、谷歌修复37个安全漏洞|1月6日全球网络安全热点
- 手机号码转码_理论联系实践:告诉你新开通的手机号码能不能办理携号转网?...
- 首发《13大行业25个企业数字化转型经典成功案例合集》(免费下载)
- 5.5G,运营商能接受吗?
- 电子处方技术的发展与应用:智慧药店系统源码的核心组成
- JAVA循环题------15只狮子选狮王