資源簡介
Matlab實現(xiàn)K-means算法,該算法是針對Iris鳶尾花數(shù)據(jù)集的實驗
代碼片段和文件信息
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簇的行號
????end
????%結(jié)束標記
????flag=1;
????%迭代次數(shù)
????iteratenum=0;
????
????while(flag==1)
????????iteratenum=iteratenum+1;
????????fprintf(‘-第%d次迭代:\n‘iteratenum);
????????flag=0;
???????%計算歐幾里得距離,劃分簇
???????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;%距離置零
???????
- 上一篇:擴張狀態(tài)觀測器程序
- 下一篇:MATLAB多目標遺傳算法
評論
共有 條評論