天天看點

MAT之GRNN/PNN:基于GRNN、PNN兩神經網絡實作并比較鸢尾花(iris資料集)種類識别正确率、各個模型運作時間對比

輸出結果

MAT之GRNN/PNN:基于GRNN、PNN兩神經網絡實作并比較鸢尾花(iris資料集)種類識别正确率、各個模型運作時間對比

實作代碼

load iris_data.mat

P_train = [];

T_train = [];

P_test = [];

T_test = [];

for i = 1:3

   temp_input = features((i-1)*50+1:i*50,:);

   temp_output = classes((i-1)*50+1:i*50,:);

   n = randperm(50);

   P_train = [P_train temp_input(n(1:40),:)'];

   T_train = [T_train temp_output(n(1:40),:)'];

   P_test = [P_test temp_input(n(41:50),:)'];

   T_test = [T_test temp_output(n(41:50),:)'];

end

result_grnn = [];

result_pnn = [];

time_grnn = [];

time_pnn = [];

for i = 1:4

   for j = i:4

       p_train = P_train(i:j,:);

       p_test = P_test(i:j,:);

       t = cputime;

       net_grnn = newgrnn(p_train,T_train);

       t_sim_grnn = sim(net_grnn,p_test);

       T_sim_grnn = round(t_sim_grnn);

       t = cputime - t;

       time_grnn = [time_grnn t];

       result_grnn = [result_grnn T_sim_grnn'];

       t = cputime;

       Tc_train = ind2vec(T_train);

       net_pnn = newpnn(p_train,Tc_train);

       Tc_test = ind2vec(T_test);

       t_sim_pnn = sim(net_pnn,p_test);

       T_sim_pnn = vec2ind(t_sim_pnn);

       time_pnn = [time_pnn t];

       result_pnn = [result_pnn T_sim_pnn'];

   end

accuracy_grnn = [];

accuracy_pnn = [];

time = [];

for i = 1:10

   accuracy_1 = length(find(result_grnn(:,i) == T_test'))/length(T_test);

   accuracy_2 = length(find(result_pnn(:,i) == T_test'))/length(T_test);

   accuracy_grnn = [accuracy_grnn accuracy_1];

   accuracy_pnn = [accuracy_pnn accuracy_2];

result = [T_test' result_grnn result_pnn]

accuracy = [accuracy_grnn;accuracy_pnn]

time = [time_grnn;time_pnn]

繼續閱讀