前言

最近在自学吴恩达的机器学习,还有学校的数据挖掘课程。课程结课设计要求剖析一个分类器程序,这是我在网上找的一篇文章(ANN神经网络入门——分类问题(MATLAB)     https://blog.csdn.net/u012321457/article/details/79273702),我这篇主要是要介绍代码其中函数的用法。

%读取训练数据
[f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150);    %建议不要使用textread,请改用textscan%特征值归一化
%[input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]') ;    %premnmx is an obsolete function. use mapminmax instead.
[input,ps] = mapminmax([f1,f2,f3,f4]',0,1);%构造输出矩阵
s = length(class);
output = zeros(s ,3);
for i = 1 : soutput( i , class( i )  ) = 1 ;    %将类别1、2、3构造成[1 0 0]'  [0 1 0]'  [0 0 1]'
end%创建神经网络
%net = newff( minmax(input) , [10 3] , { 'logsig' 'purelin' } ,  'traingdx' ) ;
% Obsoleted in R2010b NNET 7.0.  Last used in R2010a NNET 6.0.4.The recommended function is feedforwardnet.
net = feedforwardnet(10,'traingdx');%设置训练参数
net.trainparam.show = 50 ;       %显示中间结果的周期
net.trainparam.epochs = 500 ;    %最大迭代次数
net.trainparam.goal = 0.01 ;     %神经网络训练的目标误差
net.trainParam.lr = 0.01 ;       %学习率%开始训练
net = train( net, input , output' );%读取测试数据
[t1,t2,t3,t4,c] = textread('testData.txt' , '%f%f%f%f%f',150);%测试数据归一化
%testInput = tramnmx ( [t1,t2,t3,t4]' , minI, maxI );  %tramnmx is an obsolete function. use mapminmax instead.
testInput = mapminmax('apply',[t1,t2,t3,t4]',ps);%仿真
Y = sim( net , testInput);     %对输入的特征数据输出分类结果%统计识别正确率
[s1 , s2] = size( Y ) ;
hitNum = 0 ;
for i = 1 : s2[m , Index] = max( Y( : ,i)) ;    %获取输出矩阵Y每一列中的最大值及下标if( Index  == c(i)   )hitNum = hitNum + 1 ;end
end
sprintf('识别率是 %3.3f%%',100 * hitNum / s2 )

运行结果:

newff()函数

newff函数的格式为:

net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:

PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;

Si:第i层神经元个数;

TFi:第i层的传递函数,默认函数为tansig函数;

BTF:训练函数,默认函数为trainlm函数;

BLF:权值/阀值学习函数,默认函数为learngdm函数;

PF:性能函数,默认函数为mse函数。

         TF

purelin  线性传递函数

hardlim  硬限幅传递函数

hardlims  对称硬限幅传递函数

satlin  饱和线性传递函数

satlins  对称饱和线性传递函数

logsig  对数S 形传递函数

         tansig  正切S 形传递函数

radbas  径向基传递函数

compet  竞争层传递函数

        BTF

        trainlm  : 中型网络,内存需求最大,收敛速度最快

traingd :梯度下降BP训练函数(Gradient descent backpropagation)

traingdx :梯度下降自适应学习率训练函数

traingdm:动量BP算法。

trainda:学习率可变的最速下降BP算法。

trainrp:弹性算法。

trainb :以权值/阈值的学习规则采用批处理的方式进行训练的函数

trainc :以学习函数依次对输入样本进行训练的函数;

trainr :以学习函数随机对输入样本进行训练的函数.

变梯度算法:

         traincgf(Fletcher-Reeves修正算法)

         traincgp(Polak_Ribiere修正算法)

            traincgb(Powell-Beale复位算法)

         trainbfg(BFGS 拟牛顿算法)

         trainoss(OSS算法)

        网络配置参数

一些重要的网络配置参数如:

net.trainparam.goal     :神经网络训练的目标误差

net.trainparam.show   : 显示中间结果的周期

net.trainparam.epochs  :最大迭代次数

net.trainParam.lr              : 学习率

feedforwardnet()函数

feedforward网络可以用作输入和输出的映射,若给予足够的隐藏神经元,两(或更多)层前馈网络可以实现任何有限的输入输出功能,只含有一个隐含层的的神经网络可以拟合任意有限的输入输出映射问题

语法:

feedforwardnet(hiddenSizes,trainFcn)

hiddenSizes:隐藏层神经元个数(一个行向量),默认值10

trainFcn:用于训练网络性能所采用的函数,默认'trainlm'

%matlab中自带例子
[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t);
view(net)
y = net(x);
perf = perform(net,y,t)

train()函数

网络训练学习函数

语法:[ net, tr, Y1, E ]  = train( net, X, Y )

参数:

X:网络实际输入

Y:网络应有输出

tr:训练跟踪信息

Y1:网络实际输出

E:误差矩阵

sim()函数

使用网络进行仿真

语法:Y=sim(net,X)

参数:

net:网络

X   :输入给网络的K×N矩阵,其中K为网络输入(输入层)个数,N为数据样本数

Y   :输出矩阵Q×N,其中Q为网络输出(输出层)个数

数据集及源码下载链接: https://pan.baidu.com/s/1xMwGHKE_2witGVq6i2BnLg 提取码: 7ku5

用Matlab创建BP神经网络相关推荐

  1. MATLAB实现BP神经网络预测汽油辛烷值

    MATLAB实现BP神经网络预测汽油辛烷值 今天学习的新内容,在这里记录一下便于日后复习 1.清空变量,做好准备工作 %% I. 清空环境变量 clear all clc 2.导入数据,划分前50个为 ...

  2. MATLAB中用BP神经网络预测人体脂肪百分比数据

    原文链接:http://tecdat.cn/?p=22739 这个例子说明了一个函数拟合的神经网络如何根据测量结果来估计脂肪百分比(BFP) (点击文末"阅读原文"获取完整代码数据 ...

  3. 【智能控制实验】基于MATLAB的BP神经网络实现非线性函数拟合设计

    基于MATLAB的BP神经网络实现非线性函数拟合设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理,掌握matlab工具箱设计BP神经网络拟合非线性模型的方法(m文件):掌握在图形用户界面下设 ...

  4. MATLAB练习——BP神经网络预测成绩

    数据整理 假设原成绩单如下,共29人,25门课: 要预测其中一门概率论的成绩.(我的那一行) 每一列是一组输入训练集,行数代表输入层神经元个数,列数代表输入训练集组数,导入MATLAB 由于是要预测其 ...

  5. bp 预测 matlab代码,bp神经网络进行交通预测的Matlab源代码.docx

    %bp神经网络进行交通预测的Matlab源代码% BP 神经网络用于预测% 使用平台 - Matlab7.0% 数据为1986年到2000年的交通量 ,网络为3输入,1输出% 15组数据,其中9组为正 ...

  6. 机器学习 | MATLAB实现BP神经网络newff参数设定(下)

    机器学习 | MATLAB实现BP神经网络newff参数设定(下) 目录 机器学习 | MATLAB实现BP神经网络newff参数设定(下) 基本介绍 程序设计 参考资料 致谢 基本介绍 newff搭 ...

  7. 机器学习 | MATLAB实现BP神经网络newff参数设定(上)

    机器学习 | MATLAB实现BP神经网络newff参数设定(上) 目录 机器学习 | MATLAB实现BP神经网络newff参数设定(上) 基本介绍 程序设计 参考资料 致谢 基本介绍 newff搭 ...

  8. 机器学习 | MATLAB实现BP神经网络newff参数设定(中)

    机器学习 | MATLAB实现BP神经网络newff参数设定(中) 目录 机器学习 | MATLAB实现BP神经网络newff参数设定(中) 基本介绍 程序设计 参考资料 致谢 基本介绍 newff搭 ...

  9. 【智能控制实验】基于MATLAB的BP神经网络设计

    实验五:基于MATLAB的BP神经网络设计 一.实验要求: 重点是掌握BP神经网络的学习算法原理和代码设计方法,应用MATLAB编写BP神经网络训练方法:应用神经网络工具箱设计BP神经网络实现对输入输 ...

最新文章

  1. python解包裹_关于Python中包裹传参和解包裹的理解
  2. 【HDOJ】3948 The Number of Palindromes
  3. 学号20145220《信息安全系统设计基础》第12周学习总结
  4. [蓝桥杯2019初赛]不同子串-substr,模拟
  5. 错误计算机怎么打开,电脑开机出错怎么回事
  6. IIS 7.0 安装SSL证书过程
  7. 大学计算机课程设计日历,课程设计题三:日历和数字钟
  8. 使用VS.NET2003操作SQLServer DTS.
  9. Linux下安装PHP扩展 pdo_sqlsrv
  10. Linux配置中文输入法
  11. 京东快捷支付的安全隐患
  12. uni-app image组件当显示不出图片时显示默认图片
  13. 联想台式计算机编号怎么查,联想台式机主机编号怎么查询
  14. h5 标签video和audio标签的下载按钮
  15. Zabbix-3.0.x使用OneAlert发送告警
  16. opencv图像校正
  17. 苹果youtube无法连接网络_解决苹果手机Apple ID被禁止下载或无法连接到AppStore等问题...
  18. Ocean Chain: 海洋渔业的价值连接器?
  19. 01.基于Irises的springboot项目框架(简版)
  20. Pgpool-II + Watchdog 设置与测试

热门文章

  1. 使用EasyExcel将本地excel数据读取后导入mysql数据库中
  2. 14_自定义ItemDecoration实现qq好友列表分组效果
  3. 由浅入深:3D打印技术我们从电影开始谈
  4. Mac 双系统bootcamp不能正常卸载windows系统
  5. Win7Codecs+设置程序中英文对照
  6. 云存储空间选择十分重要,大小确是关键因素
  7. MindSpore论坛十一月活动宣传
  8. 电脑应用图标变成白纸
  9. 我对前端开发的粗浅认知
  10. 并发编程 — AtomicStampedReference 详解