BP 神经网络用于模式分类
% BP 神经网络用于模式分类
clc
clear
close all
%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本
P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];
P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];
%---------------------------------------------------
% 归一化
[PN1,minp,maxp] = premnmx(P1);
PN2 = tramnmx(P2,minp,maxp);
%---------------------------------------------------
% 设置网络参数
NodeNum = 10; % 隐层节点数
TypeNum = 3; % 输出维数
TF1 = 'tansig';TF2 = 'purelin'; % 判别函数(缺省值)
%TF1 = 'tansig';TF2 = 'logsig';
%TF1 = 'logsig';TF2 = 'purelin';
%TF1 = 'tansig';TF2 = 'tansig';
%TF1 = 'logsig';TF2 = 'logsig';
%TF1 = 'purelin';TF2 = 'purelin';
net = newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2});
%---------------------------------------------------
% 指定训练参数
% net.trainFcn = 'traingd'; % 梯度下降算法
% net.trainFcn = 'traingdm'; % 动量梯度下降算法
%
% net.trainFcn = 'traingda'; % 变学习率梯度下降算法
% net.trainFcn = 'traingdx'; % 变学习率动量梯度下降算法
%
% (大型网络的首选算法 - 模式识别)
% net.trainFcn = 'trainrp'; % RPROP(弹性BP)算法,内存需求最小
%
% 共轭梯度算法
% net.trainFcn = 'traincgf'; % Fletcher-Reeves修正算法
% net.trainFcn = 'traincgp'; % Polak-Ribiere修正算法,内存需求比Fletcher-Reeves修正算法略大
% net.trainFcn = 'traincgb'; % Powell-Beal复位算法,内存需求比Polak-Ribiere修正算法略大
% (大型网络的首选算法 - 函数拟合,模式识别)
% net.trainFcn = 'trainscg'; % Scaled Conjugate Gradient算法,内存需求与Fletcher-Reeves修正算法相同,计算量比上面三种算法都小很多
%
% net.trainFcn = 'trainbfg'; % Quasi-Newton Algorithms - BFGS Algorithm,计算量和内存需求均比共轭梯度算法大,但收敛比较快
% net.trainFcn = 'trainoss'; % One Step Secant Algorithm,计算量和内存需求均比BFGS算法小,比共轭梯度算法略大
%
% (中小型网络的首选算法 - 函数拟合,模式识别)
net.trainFcn = 'trainlm'; % Levenberg-Marquardt算法,内存需求最大,收敛速度最快
%
% net.trainFcn = 'trainbr'; % 贝叶斯正则化算法
%
% 有代表性的五种算法为:'traingdx','trainrp','trainscg','trainoss', 'trainlm'
%---------------------%
net.trainParam.show = 1; % 训练显示间隔
net.trainParam.lr = 0.3; % 学习步长 - traingd,traingdm
net.trainParam.mc = 0.95; % 动量项系数 - traingdm,traingdx
net.trainParam.mem_reduc = 10; % 分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效)
net.trainParam.epochs = 1000; % 最大训练次数
net.trainParam.goal = 1e-8; % 最小均方误差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.time = inf; % 最大训练时间
%---------------------------------------------------
% 训练与测试
net = train(net,PN1,T1); % 训练
%---------------------------------------------------
% 测试
Y1 = sim(net,PN1); % 训练样本实际输出
Y2 = sim(net,PN2); % 测试样本实际输出
Y1 = full(compet(Y1)); % 竞争输出
Y2 = full(compet(Y2));
%---------------------------------------------------
% 结果统计
Result = ~sum(abs(T1-Y1)) % 正确分类显示为1
Percent1 = sum(Result)/length(Result) % 训练样本正确分类率
Result = ~sum(abs(T2-Y2)) % 正确分类显示为1
Percent2 = sum(Result)/length(Result) % 测试样本正确分类率
******************************************************************
BP 神经网络用于模式分类相关推荐
- MATLAB中BP神经网络用于回归拟合算法实现(另附GRNN代码)
BP神经网络:是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络.神经网络是把生活中的常见情节推 ...
- BP神经网络用于波士顿房屋数据集上预测
一.BP神经网络的matlab工具箱 1.1. BP神经网络创建函数 自R2010b版本以后,matlab神经网络工具箱对BP网络的创建函数进行了更新,更新后的函数如下: net = feedforw ...
- 【pytorch】简单BP神经网络用于通用分类任务的代码模板
概述 最近正在学习智能信息处理课程,接触到了一些有关深度学习pytorch的简单应用,pytorch作为python中最常见的深度学习任务工具应用也非常广泛. 如果小伙伴们对神经网络部分相关理论知识比 ...
- bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx
%bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...
- 【13】 数学建模 | 预测模型 | 灰色预测、BP神经网络预测 | 预测题型的思路 | 内附代码(清风课程,有版权问题,私聊删除)
一.灰色预测使用的场景 数据是以年份度量的非负数据(如果是月份或者季度数据一定要用我们上一讲学过的时间序列模型): 数据能经过准指数规律的检验(除了前两期外,后面至少90%的期数的光滑比要低于0.5) ...
- bp神经网络实现人脸识别,车牌识别深度神经网络
1.您好,请问您有基于BP神经网络算法的车牌识别的程序代码吗?用matlab可以运行的那种. 1.对样本集进行归一化 2.创建BP神经网络 3.设置网络的训练参数 4.把样本输入BP网络进行训练 5. ...
- matlab神经网络过拟合,BP神经网络过拟合问题
如果样本比较多的话可以用 [trainV,valV,testV] = dividevec(p,t,valPercent,testPercent),然后运用 net = train(net,trainV ...
- bp神经网络实现人脸识别,bp神经网络模式识别
求基于BP神经网络实现汽车牌照识别的matlab代码或者是汽车牌照识别系统(用matlab写的,有用到BP神经网络 matlab中BP神经网络OCR识别? 单看错误率分析不出来什么,可能是样本量太少, ...
- MATLAB实现基于BP神经网络的图像压缩
神经网络建模 BP神经网络用于压缩的原理如下: BP网络至少包含一个隐含层,这里只采用一个隐含层,因此整体构成了一个三层的网络.把一组输入模式通过少量的隐含层单元映射到一组输出模式,并使输出模式尽可能 ...
- Matlab BP神经网络拟合四足机器人足端轨迹线积分方程反函数用于足端轨迹规划
Matlab BP神经网络拟合四足机器人足端轨迹线积分方程用于足端轨迹规划 问题描述 一般情况下,在对四足机器人足端轨迹进行规划时分别对足端路径和轨迹加速度进行规划,然后将规划好的加速度进行两次积分得 ...
最新文章
- mysql 查看blob字段大小_MYSQL BLOB 字段大小以及个数的限制测试。
- 改善代码设计 —— 简化条件表达式(Simplifying Conditional Expressions)
- 【Git】Git 本地的撤销修改和删除操作
- 为了在元宇宙里摸到东西,扎克伯格整出了一款新电子皮肤,成本6美元
- 港口物流系统设计与优化-SMU在线学习笔记
- 一文看懂Python多进程与多线程编程(工作学习面试必读)
- 函数不可访问_关于可重入函数
- NYOJ 93 汉诺塔 (数学)
- 谷歌CEO支持欧盟禁止人脸识别!微软总裁:能用“手术刀”就别用“切肉刀”...
- android获取其他app布局,android - 如何从App的(布局)XML变量中获取Manifest版本号?...
- 算法笔记--STL中的各种遍历及查找(待增)
- css background-image显示全部_CSS 与网络性能,看了都说好
- Winpcap笔记4之不用回调函数捕获数据包
- 获取文件夹下所有视频
- C++ 输出Unicode字符的正确方法
- 计算机内 云盘图标,如何关闭我的电脑中百度网盘图标
- 基于Office的开发-VBA
- PostMan测试http请求
- 解决tomcat正常启动但是对应的网页却无法访问
- R语言基础教程6:程序设计基础