-
大小: 11KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-06
- 語言: Matlab
- 標(biāo)簽:
資源簡介
該資源是bp神經(jīng)網(wǎng)絡(luò)的一個matlab實現(xiàn),該代碼,經(jīng)過測試可以跑通

代碼片段和文件信息
%BP算法,采用交叉驗證
clc;
clear;
flag=0;
[NUM]=xlsread(‘樣本數(shù)據(jù).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???%訓(xùn)練集
????train(i1)=NUM(i3);???%身高
????train(i2)=NUM(i4);???%體重
????train(i3)=NUM(i6);???%喜歡數(shù)學(xué)
????train(i4)=NUM(i7);???%喜歡文學(xué)
????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);???%喜歡數(shù)學(xué)
????test(i-1004)=NUM(i7);???%喜歡文學(xué)
????test(i-1005)=NUM(i8);???%喜歡運動
????test_result(i-1001)=NUM(i1);???%性別
end
%對身高和體重進(jìn)行數(shù)值歸一化
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);???%隨機(jī)選擇數(shù)據(jù)
%隨機(jī)產(chǎn)生輸入層至隱層的權(quán)值范圍(-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;
%隨機(jī)產(chǎn)生隱層至輸出層的權(quán)值,范圍(-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?%訓(xùn)練100次
%?while?(flag==0)
%?????count=1;
????for?q?=?1:100????%進(jìn)行訓(xùn)練,前100為訓(xùn)練樣本
%當(dāng)前神經(jīng)網(wǎng)絡(luò)的實際輸出
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
%權(quán)值修正,步長取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神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)\BPalgorithm.m
?????文件???????2033??2016-10-19?21:46??bp神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)\SVM.m
?????文件???????1795??2016-10-19?21:48??bp神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)\Tree.m
????..A.SH.???????162??2016-10-19?12:58??bp神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)\~$識別第二次作業(yè)-打印.doc
?????文件??????39936??2016-09-21?09:30??bp神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)\樣本數(shù)據(jù).xls
?????目錄??????????0??2016-10-20?09:44??bp神經(jīng)網(wǎng)絡(luò)matlab實現(xiàn)
-----------?---------??----------?-----??----
????????????????50827????????????????????6
評論
共有 條評論