西电数据挖掘大作业k-means和k-medoids
k_means\waveform.data');
[N K]=size(data); %数据集的数目
data0=zeros(1,K);
data1=zeros(1,K);
data2=zeros(1,K);
for i=1:N
if(data(i,K)==0)
data0=cat(1,data(i,:),data0);
elseif(data(i,K)==1)
data1=cat(1,data(i,:),data1);
else
data2=cat(1,data(i,:),data2);
end
end
sample=cat(1,data0(1:100,:),data1(1:100,:),data2(1:100,:));
label=sample(:,K); %样本的正确类标
sample=sample(:,1:K-1); %样本集
k=3; %聚类中心的数目
%%%%%%%%%K_means%%%%%%%%
[y cnew n]=k_means(sample,k);
%%%%%%%%%%正确率统计%%%%%%%
sum=zeros(1,6);
[N V]=size(sample);
for i=1:N
if(y(i,1)==label(i,1))
sum(1,1)=sum(1,1)+1;
end
end
for i=1:N
if((y(i,1)+label(i,1))==2)
sum(1,2)=sum(1,2)+1;
end
end
for i=1:N
if(((y(i,1)==0)&&(label(i,1)==0))||((y(i,1)==1)&&label(i,1)==2)||((y(i,1)==2)&&label(i,1)==1))
sum(1,3)=sum(1,3)+1;
end
end
for i=1:N
if(((y(i,1)==0)&&(label(i,1)==1))||((y(i,1)==1)&&label(i,1)==0)||((y(i,1)==2)&&label(i,1)==2))
sum(1,4)=sum(1,4)+1;
end