Goal To implement clustering On the following tasks consider
Solution
clc;
%--------------- Initializing the dataset ---------------------%
 filename=input(\'enter filename:\',\'s\');
 % filename=project4.xlsx;
 DataSet=xlsread(filename);
 Dim=size(DataSet);
   
k=input(\'No Of clustres : \');
 %--------------------------- 3 random centres ----------------------------%
 Centre1=input(\'enter center1:\');
 Centre2=input(\'enter center2:\');
 Centre3=input(\'enter center3:\');
n=input(\'No Of Iterations : \')
 %----------------------- Partitional Algorithm ---------------------------%
 %-------------------------- K means Algorithm ----------------------------%
 for j=1:1:n
 count1=0;
 Mean1=zeros(1,k);
 count2=0;
 group1=[];
 Mean2=zeros(1,k);
 group2=[];
 count3=0;
 group3=[];
 Mean3=zeros(1,k);
%Finding the minimum distance
 for i=1:1:Dim(1,1)
   
 Pattern1(i)=sqrt((Centre1(1,1)-DataSet(i,1))^2+(Centre1(1,2)-DataSet(i,2))^2+(Centre1(1,3)-DataSet(i,3))^2+(Centre1(1,4)-DataSet(i,4))^2);
  Pattern2(i)=sqrt((Centre2(1,1)-DataSet(i,1))^2+(Centre2(1,2)-DataSet(i,2))^2+(Centre2(1,3)-DataSet(i,3))^2+(Centre1(1,4)-DataSet(i,4))^2);
  Pattern3(i)=sqrt((Centre3(1,1)-DataSet(i,1))^2+(Centre3(1,2)-DataSet(i,2))^2+(Centre3(1,3)-DataSet(i,3))^2+(Centre1(1,4)-DataSet(i,4))^2);
LessDist=[Pattern1(i) Pattern2(i) Pattern3(i)];
 Minimum=min(LessDist);
%Finding the new centre
 if (Minimum==Pattern1(i))
 count1=count1+1;
 Mean1=Mean1+DataSet(i,:);
 group1=[group1 i];
 else if (Minimum==Pattern2(i))
 count2=count2+1;
 Mean2=Mean2+DataSet(i,:);
 group2=[group2 i];
 else count3=count3+1;
 Mean3=Mean3+DataSet(i,:);
 group3=[group3 i];
 end
 end
end
%----------------------------- New Centres -------------------------------%
 Centre1=Mean1/count1;
 Centre2=Mean2/count2;
 Centre3=Mean3/count3;
 plot(j,count1,\'r\');
 hold on
 plot(j,count2,\'g\');
 plot(j,count3,\'b\');
end
 % final centroids
 fprintf(\'the centroid1:\ \');
 disp(Centre1);
 fprintf(\'the centroid2:\ \');
 disp(Centre2);
 fprintf(\'the centroid3:\ \');
 disp(Centre3);
 hold off
 % specify the indexed color for each point
 icolor = ceil((DataSet(:,k)/max(DataSet(:,k)))*256);
figure,
 scatter3(DataSet(:,1),DataSet(:,2),DataSet(:,3),DataSet(:,4),icolor,\'filled\');
  figure,
scatter3(DataSet(:,1),DataSet(:,2),DataSet(:,3),[],DataSet(:,4),\'filled\');


