聚类之K-means均值聚类
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                聚类之K-means均值聚类
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                K-means均值聚類是先行選擇若干個(gè)樣本點(diǎn)作為聚類中心,再按某種聚類準(zhǔn)則(通常采用最小距離原則)使各樣本點(diǎn)向各個(gè)中心聚集,從而得到初始分類,然后,判斷初始分類是否合理,如果不合理,就修改分類,......,以此反復(fù)進(jìn)行修改聚類的迭代運(yùn)算,直到合理為止。算法主要參照了蔡元龍老師的《模式識(shí)別》一書(shū),matlab程序編寫:
%Programed by Lu Qi,University of Chinese Academy of Sciences %my email:qqlu1992@gmail.com clear all clc train_x=[0 3 1 2 0;1 3 0 1 0;3 3 0 0 1;1 1 0 2 0;3 2 1 2 1;4 1 1 1 0]; [pars.num_train,pars.length]=size(train_x);%num_train代表樣本的數(shù)量,length代表樣本的維數(shù) pars.num_cluster=2; initial=randperm(6); pars.iter=1; initial_point=initial(1:pars.num_cluster); pars.z{pars.iter}=train_x(initial_point,:); while 1for i=1:pars.num_trainfor j=1:pars.num_clusterd(i,j)=norm(train_x(i,:)-pars.z{pars.iter}(j,:));endend[min_d,index]=min(d,[],2);%求相同聚類樣本的標(biāo)號(hào)for i=1:pars.num_trainfor j=1:pars.num_clusterif (index(i))==jg(j,i)=[;i];endendendpars.iter=pars.iter+1;%找每一類中不等于0的數(shù)for j=1:pars.num_clustertemp=find(g(j,:));pars.z{pars.iter}(j,:)=sum(train_x(temp,:))/(length(temp));endif pars.z{pars.iter}==pars.z{pars.iter-1}break;end end for j=1:pars.num_clusterfprintf('the %d th cluster centre is\n',j);fprintf('%7.4f',pars.z{end}(j,:))fprintf('\n'); end
 
總結(jié)
以上是生活随笔為你收集整理的聚类之K-means均值聚类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 聚类之hierachical clust
- 下一篇: 基于adaboost的人脸检测方法
