資源簡介
K-means,傳統計算K均值的一種聚類算法,因其復雜度抵而應用最為普遍的一種聚類方法
代碼片段和文件信息
%N是數據一共分多少類
%data是輸入的不帶分類標號的數據
%u是每一類的中心
%re是返回的帶分類標號的數據
function?[u?re]=KMeans(dataN)???
????[m?n]=size(data);???%m是數據個數,n是數據維數
????ma=zeros(n);????????%每一維最大的數
????mi=zeros(n);????????%每一維最小的數
????u=zeros(Nn);???????%隨機初始化,最終迭代到每一類的中心位置
????for?i=1:n
???????ma(i)=max(data(:i));????%每一維最大的數
???????mi(i)=min(data(:i));????%每一維最小的數
???????for?j=1:N
????????????u(ji)=ma(i)+(mi(i)-ma(i))*rand();??%隨機初始化,不過還是在每一維[min?max]中初始化好些
???????end??????
????end
???
????while?1
????????pre_u=u;????????????%上一次求得的中心位置
????????for?i=1:N
????????????tmp{i}=[];??????%?公式一中的x(i)-uj為公式一實現做準備
????????????for?j=1:m
????????????????tmp{i}=[tmp{i};data(j:)-u(i:)];
????????????end
????????end
????????
????????quan=zero
評論
共有 條評論