91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.29MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-10-11
  • 語言: Matlab
  • 標簽: MATLAB??

資源簡介

本代碼(MATLAB)可直接運行,對Iris鳶尾花數據分類,準確率96%左右,隨機2/3數據訓練,1/3數據測試。對于新手有幫助,多為矩陣運算。

資源截圖

代碼片段和文件信息

clear?
clc
f=fopen(‘iris.data‘);
Iris=textscan(f‘%f%f%f%f%s‘‘delimiter‘‘‘);
fclose(f);
[~n]=size(Iris);
for?i=1:n-1
????data(:i)=Iris{1i};
end
[mn]=size(data);
for?i=1:m
????if?strcmp(Iris{15}{i1}‘Iris-setosa‘)
????????data(i5:7)=[1?0?0];
????elseif??strcmp(Iris{15}{i1}?‘Iris-versicolor‘)
????????data(i5:7)=[0?1?0];
????else?
????????data(i5:7)=[0?0?1];
????end
end
%數據歸一化處理[01]區間內
x_max=max(data);
x_min=min(data);
data=(data-ones(m1)*x_min)./(ones(m1)*(x_max-x_min));
%?這里可用函數data=mapminmax(data01)替換
%但data需要轉置因為mapminmax只能對行進行歸一化
%%
%劃分訓練樣本和測試樣本?大約2/3用作訓練,1/3用作測試
num=round(m/3/3);
for?i=1:3
????temp=data(1+50*(i-1):50*i:);
????sel=randperm(50num);
????test(1+num*(i-1):num*i:)=temp(sel1:4);
????test_label(1+num*(i-1):num*i:)=temp(sel5:7);
????temp(sel:)=[];
????train(1+(50-num)*(i-1):(50-num)*i:)=temp(:1:4);
????train_label(1+(50-num)*(i-1):(50-num)*i:)=temp(:5:7);
end
%%
[mn]=size(train);
alpha=4;%輸入神經元數目
beta=8;%隱層神經元數目
lamda=3;%輸出神經元數目
rng(‘shuffle‘)
W1=rand(alphabeta);%輸入層和隱層之間的權值矩陣
W2=rand(betalamda);%隱層和輸出層間的權值矩陣
B1=rand(1beta);%隱層閾值矩陣
B2=rand(1lamda);%輸出層閾值矩陣
B22=B2;
W11=W1;
Eta=1;%學習率
iter_max=10000;%最大迭代次數
iter=1;
%BP神經網絡,每次僅針對一個訓練樣例更新連接權和閾值
while?iter<=iter_max
???for?i=1:m
????hidden_in=train(i:)*W1;%隱層輸入
????hidden_out=sigmod(hidden_in-B1);%隱層輸出
????output_in=hidden_out*W2;%輸出層輸入
????output_out=sigmod(output_in-B2);%輸出層輸出
????%計算誤差
????E(i)=sum((output_out-train_label(i:)).^2);%求平方和可用sumsqr函數
????%%
????%更新參數BP神經網絡中最核心的部分
???g=output_out.*(1-output_out).*(train_label(i:)-output_out);%計算輸出層神經元的梯度項
???e=hidden_out.*(1-hidden_out).*(g*W2‘);%計算隱層神經元的梯度項
???Deta_W2=Eta*hidden_out‘*g;
???Deta_B2=-Eta*g;
???Deta_W1=Eta*train(i:)‘*e;
???Deta_B1=-Eta*e;
???W1=W1+Deta_W1;
???W2=W2+Deta_W2;
???B1=B1+Deta_B1;
???B2=B2+Deta_B2;
???end
%計算訓練集的累積誤差
E=mean(E);
if?E<1e-4??%目標誤差
????iter
????break
end
if?mod(iter1000)==0
???????iter
end
???iter=iter+1;%更新迭代次數
end
%%
%測試
[resultaccuracy]=BP_test(testtest_labelW1W2B1B2);
disp(‘結果為:‘)
result‘
disp(strcat(‘準確率為‘num2str(accuracy*100)‘%‘))
function?[resultaccuracy]=BP_test(testtest_labelW1W2B1B2)
%返回分類的結果
%accuracy準確率
Hidden_in=test*W1;%隱層輸入
Hidden_out=sigmod(Hidden_in-B1);%隱層輸出
Output_in=Hidden_out*W2;%輸入層輸入
Output_out=sigmod(Output_in-B2);
[~result]=max(Output_out[]2);
[~index2]=max(test_label[]2);
right=sum(result==index2);%統計分類正確的個數
total=size(test1);%總個數
accuracy=right/total;
end
%sigmod函數在matlab里是logsig函數
function?[Y]=sigmod(X)
Y=1./(1+exp(-1).^X);
end
????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2909??2019-08-12?23:37??neural_networks\BP_networks.m
?????文件????????4551??2019-08-04?13:24??neural_networks\iris.data
?????文件?????1133510??2019-08-12?22:55??neural_networks\周志華-機器學習-101.jpg
?????文件??????632486??2019-08-12?22:56??neural_networks\周志華-機器學習-102.jpg
?????文件??????467382??2019-08-12?22:56??neural_networks\周志華-機器學習-103.jpg
?????文件??????839981??2019-08-12?22:56??neural_networks\周志華-機器學習-104.jpg
?????目錄???????????0??2019-08-12?23:40??neural_networks\

評論

共有 條評論