资源简介
该资源是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
- 上一篇:绘制应力应变曲线
- 下一篇:指纹图像方向场快速实现代码
相关资源
- matlab BP神经网络 0-9数字识别
- 遗传算法优化BP神经网络,以非线性函
- 基于遗传算法的BP神经网络MATLAB代码
- matlab BP神经网络的动量梯度下降算法
- MATLAB 3层BP神经网络资源
- BP网络训练MATLAB程序
- BP神经网络 拟合正弦曲线的
- 基于matlab的车牌识别,采用的是BP神经
- 利用GA-BP神经网络算法的应用之MATLA
-
Simuli
nk_BP神经网络PID控制 - bp神经网络工具箱
- BP神经网络预测交通量
- matlab当中单层的BP神经网络不使用工具
- 机器学习_BP反向传播算法_MATLAB
- matlab bp神经网络包括数据.mat
- 粒子群算法求解BP神经网络参数
- BP神经网络matlab(简单而经典).
-
BP神经网络+PID控制simuli
nk仿真 - BP神经网络MATLAB实现不使用工具箱
- BP神经网络对iris数据集进行分类 MAT
- BP神经网络与MATLAB神经网络工具箱
- BP神经网络整定的PID算法_matlab源程序
- BP神经网络关于空气污染物含量预测
-
BP神经网络PID控制simuli
nk部分的S函数 - 使用bp神经网络进行分布式光伏出力预
- 网上找的BP神经网络算法程序和大家分
- 基于bp神经网络的变压器故障检测
- 基于Matlab的BP神经网络在大气污染预报
- 基于三层BP神经网络的股票数据预测模
- 使用遗传算法优化BP神经网络权值 的
评论
共有 条评论