西电数据挖掘大作业k-means和k-medoids
y=zeros(N,1); %记录样本类标
dist=zeros(1,k);
rand_num=randperm(N);
cnew=(sample(rand_num(1,1:k),:));%随机初始化聚类中心
cold=zeros(k,V);
n=0;
while(cold~=cnew)
cold=cnew;
n=n+1; %记录迭代次数
%对样本进行重新分类
for i=1:N
for j=1:k
if(V==1)
dist(1,j)=abs(sample(i,:)-cold(j,:));
else
dist(1,j)=norm(sample(i,:)-cold(j,:));
end
end
for s=1:k
if(dist(1,s)==min(dist))
y(i,1)=s-1;
end
end
end
%更新聚类中心
cnew=zeros(k,V);
flag=zeros(k,1);
for i=1:N
for j=1:k
if (y(I,1)==j-1)
flag(j,1)=flag(j,1)+1;
cnew(j, =cnew(j, +sample(I, ;
end
end
end
for j=1:k
cnew(j, =cnew(j, /flag(j,1);
end
end
k_means_waveform:
clear;clc;
%%%%%%%%%数据读入%%%%%%%
data=load('G:\西电\2014大三下\大作业\Data Mining\