資源簡(jiǎn)介
Matlab實(shí)現(xiàn)K-means算法,該算法是針對(duì)Iris鳶尾花數(shù)據(jù)集的實(shí)驗(yàn)
代碼片段和文件信息
function?result=K_means(datakinitset)
????[rowscolumns]=size(data);%獲取數(shù)據(jù)的行列
????for?i=1:k
????data(initset(i)columns+1)=i;%初始聚簇代表確定
????oldClusetCenter(i:)=data(initset(i)1:columns);
????oldClusterRows{i}=initset(i);%初始第i簇的行號(hào)
????end
????%結(jié)束標(biāo)記
????flag=1;
????%迭代次數(shù)
????iteratenum=0;
????
????while(flag==1)
????????iteratenum=iteratenum+1;
????????fprintf(‘-第%d次迭代:\n‘iteratenum);
????????flag=0;
???????%計(jì)算歐幾里得距離,劃分簇
???????for?ii=1:rows
???????????for?jj=1:k
????????????????res=(data(ii1:columns)-oldClusetCenter(jj:)).*(data(ii1:columns)-oldClusetCenter(jj:));
????????????????dist(jj)=sqrt(sum(res));%dist矩陣存放歐幾里得距離
???????????end
???????????data(iicolumns+1)=find(dist==min(dist));%最小歐幾里得距離,劃分簇
???????????dist(1:k)=0;%距離置零
???????
評(píng)論
共有 條評(píng)論