资源简介
该资源是bp神经网络的一个matlab实现,该代码,经过测试可以跑通

代码片段和文件信息
%BP算法,采用交叉验证
clc;
clear;
flag=0;
[NUM]=xlsread(‘样本数据.xls‘‘B2:I147‘);
[hw]=size(NUM);
group=zeros(h1);
train=zeros(h5);
train_exresult=zeros(h1);
test=zeros(h1);
test_result=zeros(h1);
for i=1:100 %训练集
train(i1)=NUM(i3); %身高
train(i2)=NUM(i4); %体重
train(i3)=NUM(i6); %喜欢数学
train(i4)=NUM(i7); %喜欢文学
train(i5)=NUM(i8); %喜欢运动
train_exresult(i1)=NUM(i1); %性别
end
for i=101:h %测试集
test(i-1001)=NUM(i3); %身高
test(i-1002)=NUM(i4); %体重
test(i-1003)=NUM(i6); %喜欢数学
test(i-1004)=NUM(i7); %喜欢文学
test(i-1005)=NUM(i8); %喜欢运动
test_result(i-1001)=NUM(i1); %性别
end
%对身高和体重进行数值归一化
max_h=train(11);min_h=train(11);
max_w=train(12);min_w=train(12);
for i=2:h
if train(i1)>max_h
max_h=train(i1);
end
if train(i1) min_h=train(i1);
end
if train(i2)>max_w
max_w=train(i2);
end
if train(i2) min_w=train(i2);
end
end
for i=1:h
train(i1)=(train(i1)-min_h)/(max_h-min_h);
train(i2)=(train(i2)-min_w)/(max_w-min_w);
end
%q = randi(h); %随机选择数据
%随机产生输入层至隐层的权值范围(-0.3,0.3)
w11=rand(1)*0.6-0.3;w12=rand(1)*0.6-0.3;w13=rand(1)*0.6-0.3;w14=rand(1)*0.6-0.3;w15=rand(1)*0.6-0.3;
w21=rand(1)*0.6-0.3;w22=rand(1)*0.6-0.3;w23=rand(1)*0.6-0.3;w24=rand(1)*0.6-0.3;w25=rand(1)*0.6-0.3;
w31=rand(1)*0.6-0.3;w32=rand(1)*0.6-0.3;w33=rand(1)*0.6-0.3;w34=rand(1)*0.6-0.3;w35=rand(1)*0.6-0.3;
w41=rand(1)*0.6-0.3;w42=rand(1)*0.6-0.3;w43=rand(1)*0.6-0.3;w44=rand(1)*0.6-0.3;w45=rand(1)*0.6-0.3;
w51=rand(1)*0.6-0.3;w52=rand(1)*0.6-0.3;w53=rand(1)*0.6-0.3;w54=rand(1)*0.6-0.3;w55=rand(1)*0.6-0.3;
%随机产生隐层至输出层的权值,范围(-0.3,0.3)
v1=rand(1)*0.6-0.3;v2=rand(1)*0.6-0.3;v3=rand(1)*0.6-0.3;v4=rand(1)*0.6-0.3;v5=rand(1)*0.6-0.3;
for i=1:100 %训练100次
% while (flag==0)
% count=1;
for q = 1:100 %进行训练,前100为训练样本
%当前神经网络的实际输出
y1=1/(1+exp(-(w11*train(q1)+w21*train(q2)+w31*train(q3)+w41*train(q4)+w51*train(q5))));
y2=1/(1+exp(-(w12*train(q1)+w22*train(q2)+w32*train(q3)+w42*train(q4)+w52*train(q5))));
y3=1/(1+exp(-(w13*train(q1)+w23*train(q2)+w33*train(q3)+w43*train(q4)+w53*train(q5))));
y4=1/(1+exp(-(w14*train(q1)+w24*train(q2)+w34*train(q3)+w44*train(q4)+w54*train(q5))));
y5=1/(1+exp(-(w15*train(q1)+w25*train(q2)+w35*train(q3)+w45*train(q4)+w55*train(q5))));
y=1/(1+exp(-(v1*y1+v2*y2+v3*y3+v4*y4+v5*y5)));
% ex(q1)=y-exresult(q1);
% if (ex(q1)<1) & (ex(q1)>-1)
% count=count+1;
% end
%权值修正,步长取1
v1_1=v1+y*(1-y)*(train_exresult(q1)-y)*y1;
v2_1=v2+y*(1-y)*(train_exresult(q1)-y)*y2;
v3_1=v3+y*(1-y)*(train_exresult(q1)-y)*y3;
v4_1=v4+y*(1-y)*(train_exresult(q1)-y)*y4;
v5_1=v5+y*(1-y)*(train_exresult(q1)-y)*y5;
w11_1=w11+y1*(1-y1)*y*(1-y)*(train_exresult(q1)-y)*train(q1);w12_1=w12+y2*(1-y2)*y*(1-y)*(train_exresult(q1)-y)*train(q1);
w13_1=w13+y3*(1-y3)*y*(1-y)*(train_exresult(q1)-y)*train(q1);w14_1=
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6901 2016-10-19 21:44 bp神经网络matlab实现\BPalgorithm.m
文件 2033 2016-10-19 21:46 bp神经网络matlab实现\SVM.m
文件 1795 2016-10-19 21:48 bp神经网络matlab实现\Tree.m
..A.SH. 162 2016-10-19 12:58 bp神经网络matlab实现\~$识别第二次作业-打印.doc
文件 39936 2016-09-21 09:30 bp神经网络matlab实现\样本数据.xls
目录 0 2016-10-20 09:44 bp神经网络matlab实现
----------- --------- ---------- ----- ----
50827 6
- 上一篇:绘制应力应变曲线
- 下一篇:指纹图像方向场快速实现代码
相关资源
- 基于BP神经网络对几种字体0-9的数字识
- 基于BP神经网络的盲均衡算法 C程序(
- 基于BP神经网络的语音情感识别系统
- BP神经网络解决手写数字识别问题 m
- BP神经网络实现手写数字识别matlab实现
- 应用BP神经网络逼近非线性函数
- 基于BP神经网络的无线传感器定位算法
- BP神经网络在隧道基坑工程中的实际运
- 利用BP神经网络实现手写体数字识别
- 利用BP神经网络对图像提取的MATLAB代码
- 基于MATLAB的BP神经网络应用绝对好资源
- 基于Matlab的遥感影像BP神经网络分类算
- matlab基于BP神经网络的人脸识别
- 基于BP神经网络的水上交通事故预测及
- zw_qq_15023225-7501331-S函数的BP神经网络
- BP神经网络MATLAB.zip
- 基于BP神经网络的人脸识别源码matla
- BP神经网络用于蚊子分类
- BP神经网络的人脸识别matlab代码
- BP神经网络人脸识别MATLAB.zip
- 基于BP神经网络的手写数字识别matla
- 基于BP神经网络的人脸识别代码
- bp神经网络 matlab代码 识别0到10的数字
- 基于BP神经网络的人脸识别系统_安大
- 基于MATLAB的BP神经网络的人脸朝向识别
- 基于S函数的BP神经网络PID控制器及S
- 基于bp神经网络字符识别系统 matlab代
- 光伏太阳能功率预测基于BP神经网络
- BP神经网络 手写体
- 基于BP神经网络的验证码识别matlab
评论
共有 条评论