資源簡介
機器學習,BP神經網絡進行多分類matlab代碼
代碼片段和文件信息
function?glass1=classifyBP()
clc;
clear;
load?glass.txt;
data=[glass(:2:11)];
glass_train=[data(1:35:);data(71:108:);data(147:155:);data(164:170:);data(177:181:);data(186:200:)];%人工分成訓練集
glass_test=[data(36:70:);data(109:146:);data(156:163:);data(171:176:);data(182:185:);data(201:214:)];%人工分成測試集
train_label=[glass_train(:10)];%訓練集標簽
test_label=[glass_test(:10)];%測試集標簽
%%%%%%%%%%%%%%%%%%%對數據進行出來,于適合BP神經網絡函數的調用
glass_train=glass_train‘;
glass_test=glass_test‘;
train_label=train_label‘;
test_label=test_label‘;
%對訓練集和測試集進行歸一化
[train1minpmaxplabelmintmaxt]?=?premnmx(glass_traintrain_label);
[test]=tramnmx(glass_testminpmaxp);
%構造神經網絡
net?=?newff(?minmax(train1)??[10?1]??{?‘tansig‘?‘tansig‘?}??‘traingdx‘?)?;
%設置訓練參數
net.trainparam.show?=?50?;
net.trainparam.epochs?=2500;
net.trainparam.goal?=?0.00001?;
net.trainParam.lr?=?0.01?;
%開始訓練
net?=?train(nettrain1label);
%測試集仿真
TEST?=?sim(nettest);
[y1]=postmnmx(TESTmintmaxt);%反歸一化
testresult=tonumber1(y1)
erroroftest=evalu(test_labeltestresult)
%訓練集仿真
Z?=?sim(nettrain1);
[z]=postmnmx(Zmintmaxt);%反歸一化
trainresult=tonumber1(z)
erroroftrain1=evalu(train_labeltrainresult)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%子函數
function?y=tonumber1(x)
for?i=1:size(x2)
???if?x(i)<1.5
???????x(i)=1;
????end
????if?1.5 ???????x(i)=2;
????end
????if?2.5 ????????x(i)=3;
????end
????if?3.5 ????????x(i)=4;
????end
????if?4.5 ????????x(i)=5;
????end
????if?5.5 ????????x(i)=6;
????end
????if?6.5 ????????x(i)=7;
????end
????y(i)=x(i);
end
function?error=evalu(ab)
error=0;%分類錯誤的個數
for?i=1:size(a2)
????if?a(i)~=b(i)
????????error=error+1;
????end
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????1896??2020-09-13?11:13??classifyBP.m
?????文件???????12119??2020-09-13?11:13??glass.txt
- 上一篇:CPM 連續相位信號調制解調
- 下一篇:msd CPM多符號檢測算法調制解調
評論
共有 條評論