Matlab实现BP神经网络
来源:互联网 发布:中银淘宝校园卡注销 编辑:程序博客网 时间:2024/05/19 15:22
该实现为《数据挖掘》课程的一次作业。数据在http://www.kaggle.com/网站上,所以数据为CSV格式。但BP神经网络算法为最一般的实现,所以有参考价值。
close all %关闭打开的文件clear %清除内存中的数据echo on %显示执行的每一条命令clc %清除命令行窗口pause %敲任意键开始 %定义训练样本 %P为输入矢量,注意最后的转置为了保证输入矢量与目标矢量的列数相同。%P为384*10000矩阵P = csvread('C:\Users\Administrator\Desktop\train.csv',1,2)';%T为目标矢量,注意最后的转置为了保证输入矢量与目标矢量的列数相同。%T为1*10000矩阵RNG = [1, 1, 10000, 1];T = csvread('C:\Users\Administrator\Desktop\train.csv',1,1, RNG)';%创建一个新的前向神经网络 %传递函数包括tansig、purelin、logsig%newff旧的使用方法,会有warningnet=newff(minmax(P),[20,1],{'logsig','purelin'},'traingdm')%设置训练参数 net.trainParam.show = 100; %100个迭代显示收敛曲线变化net.trainParam.lr = 0.05; %学习速率为0.05net.trainParam.mc = 0.9; %网络中设置动量因子为c=0.9 ?net.trainParam.epochs = 10000; %最大训练次数为10000net.trainParam.goal = 1e-3; %训练精度为1e-3%调用 TRAINGDM 算法训练 BP 网络 [net,tr]=train(net,P,T); %读取测试数据Q = csvread('C:\Users\Administrator\Desktop\test.csv',1,1)';%对BP网络进行仿真 A = sim(net,Q);%生成所需格式N=10000 %数组长度B=zeros(1,N) %定义一个长度为N的数组A(数组A为一行形式的数组),并将每个元素值初始化为0for num=1:N %循环给A的每个元素值初始化为num*2B(num)=num;endR = [B; A]';%写入信息csvwrite('C:\Users\Administrator\Desktop\result.csv', R, 1, 0);pause clc echo off
实现过程如上所示,下面解释一下所用到的函数。
(1)csvread
第一种:M = csvread('FILENAME') ,直接读取csv文件的数据,并返回给M,这时要求整个csv文件内容全部为用逗号隔开的数字,不能用其他字符。
第二种:M = csvread('FILENAME',R,C) ,读取csv文件中从第R-1行,第C-1列的数据开始的数据,这对带有头文件说明的csv文件(如示波器等采集的文件)的读取是很重要的。
第三种:M = csvread('FILENAME',R,C,RNG),其中 RNG = [R1 C1 R2 C2],读取左上角为索引为(R1,C1) ,右下角索引为(R2,C2)的矩阵中的数据。
(2)newff
第一个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值。
第二个参数是一个设定每层神经元个数的数组。
第三个参数是包含每层用到的传递函数名称的细胞数组。
最后一个参数是用到的训练函数的名称。
(3)train
[net,tr] = train(net,X,T,Xi,Ai)
Network
X输入矢量
T目标矢量(default = zeros)
XiInitial input delay conditions (default = zeros)
AiInitial layer delay conditions (default = zeros)
and returns
New network
trTraining record (epoch andperf)
(4)网络层数的选择,传递函数的选择,训练参数的选择尚待研究。
Reference:
1. 新版Matlab中神经网络训练函数Newff的使用方法
http://blog.sina.com.cn/s/blog_64b046c70101cko4.html
2. matlab newff使用
http://hi.baidu.com/topman8023/item/42248e3820a6baf396f88d09
3. 怎样从matlab中读取csv文件
http://blog.sina.com.cn/s/blog_46e9b2010100u6gb.html
4. Matlab Documentation
0 0
- Matlab实现BP神经网络
- matlab实现BP神经网络
- BP神经网络matlab实现
- MATLAB实现BP神经网络
- Matlab实现BP神经网络
- bp神经网络及matlab实现
- BP神经网络及MATLAB实现
- bp神经网络及matlab实现
- bp神经网络及matlab实现
- Matlab实现简单BP神经网络
- bp神经网络及matlab实现
- bp神经网络及matlab实现
- BP神经网络及matlab实现
- bp神经网络及matlab实现
- 三层 BP 神经网络 matlab 实现
- bp神经网络及matlab实现
- BP神经网络及matlab实现
- bp神经网络及matlab实现
- dispatch_once的实现分析
- OC语言自学《十》---- OC(构造函数、分类等知识总结)
- 动态优先权进程调度算法
- python 学习札记(2)
- 斐波那契数列
- Matlab实现BP神经网络
- windows字符类型
- 利用html5 canvas 画图的一个例子
- TIFF Tag JPEGInterchangeFormat
- 网络字节序与主机字节序的转换
- 一段小代码
- Nagios之ndoutils-mysql中文乱码[UTF-8]分析分享
- 命令行创建和rest创建
- 机器学习中的有监督学习,无监督学习,半监督学习