天天看點

MAT之ELM:ELM實作鸢尾花(iris資料集)種類測試集預測識别正确率(better)結果對比

輸出結果

MAT之ELM:ELM實作鸢尾花(iris資料集)種類測試集預測識别正确率(better)結果對比

實作代碼

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

[IW,B,LW,TF,TYPE] = elmtrain(P_train,T_train,20,'sig',1);

T_sim_1 = elmpredict(P_train,IW,B,LW,TF,TYPE);

T_sim_2 = elmpredict(P_test,IW,B,LW,TF,TYPE);

result_1 = [T_train' T_sim_1'];

result_2 = [T_test' T_sim_2'];

k1 = length(find(T_train == T_sim_1));

n1 = length(T_train);

Accuracy_1 = k1 / n1 * 100;

disp(['訓練集正确率Accuracy = ' num2str(Accuracy_1) '%(' num2str(k1) '/' num2str(n1) ')'])

k2 = length(find(T_test == T_sim_2));

n2 = length(T_test);

Accuracy_2 = k2 / n2 * 100;

disp(['測試集正确率Accuracy = ' num2str(Accuracy_2) '%(' num2str(k2) '/' num2str(n2) ')'])

figure(2)

plot(1:30,T_test,'bo',1:30,T_sim_2,'r-*')

grid on

xlabel('測試集樣本編号')

ylabel('測試集樣本類别')

string = {'ELM:ELM實作鸢尾花種類測試集預測識别正确率(better)結果對比—Jason niu';['(正确率Accuracy = ' num2str(Accuracy_2) '%)' ]};

title(string)

legend('真實值','ELM預測值')

繼續閱讀