%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Practice 6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all close all clc load iris X = X'; t = t'; %-------------------------------------------------------------------------- % 1) With two features %-------------------------------------------------------------------------- %Classification with "Sepals Length" and "Sepals width" c12 = kmeans(X(1:2,:),3); [o,i] = sort(setclass(X(1:2,:), t, c12)); %Classification error [tp, d] = mycenter(X(1:2,:),c12); tp = tp - 1; acierto = sum(tp == t); error = (((length(t) - acierto) / length(t)))*100; figure,plotpat(X(1:2,:), t) legend('Iris setosa', 'Iris versicolor ', 'Iris virginica ') xlabel('Sepals length') ylabel('Sepals width') title(['Error = ' num2str(error) '%']) hold on, plot(c12(1,i(1)), c12(2,i(1)), '*r') plot(c12(1,i(2)), c12(2,i(2)), '*g') plot(c12(1,i(3)), c12(2,i(3)), '*b') %-------------------------------------------------------------------------- % 2) With three features %-------------------------------------------------------------------------- c123 = kmeans(X(1:3,:),3) [o,i] = sort(setclass(X(1:3,:), t, c123)) %Classification error [tp, d] = mycenter(X(1:3,:),c123); tp = tp - 1; acierto = sum(tp == t); error = (((length(t) - acierto) / length(t)))*100 i1 = find(t == 0); i2 = find(t == 1); i3 = find(t == 2); figure,plot3(X(1, i1),X(2, i1), X(3, i1), 'or') hold on, plot3(X(1, i2),X(2, i2), X(3, i2), 'og') plot3(X(1, i3),X(2, i3), X(3, i3), 'ob') legend('Iris setosa', 'Iris versicolor ', 'Iris virginica ') xlabel('Sepals length') ylabel('Sepals width') zlabel('Petals length') title(['Error = ' num2str(error) '%']) plot3(c123(1,i(1)), c123(2,i(1)), c123(3,i(1)),'*r') plot3(c123(1,i(2)), c123(2,i(2)), c123(3,i(2)), '*g') plot3(c123(1,i(3)), c123(2,i(3)), c123(3,i(1)),'*b')