用matlab做群集

來源:互聯網
上載者:User

轉載一:

MATLAB提供了兩種方法進行群集:

1、利用clusterdata 函數對資料樣本進行一次聚類,這個方法簡潔方便,其特點是使用範圍較窄,不能由使用者根據自身需要來設定參數,更改距離計算方法;

2、分步聚類:(1)用pdistFunction Compute變數之間的距離,找到資料集合中兩輛變數之間的相似性和非相似性;(2)用linkage函數定義變數之間的串連;(3)用cophenetic函數評價聚類資訊;(4)用cluster函數進行聚類。

下邊詳細介紹兩種方法:

1、一次聚類

Clusterdata函數可以視為pdist、linkage與cluster的綜合,一般比較簡單。

【clusterdata函數:

調用格式:T=clusterdata(X,cutoff)     

                      等價於Y=pdist(X,’euclid’); Z=linkage(Y,’single’); T=cluster(Z,cutoff)  】

2、分步聚類

(1)求出變數之間的相似性

用pdistFunction Compute出相似矩陣,有多種方法可以求距離,若此前資料還未無量綱化,則可用zscore函數對其標準化

【pdist函數:調用格式:Y=pdist(X,’metric’)

 說明:X是M*N矩陣,為由M個樣本組成,每個樣本有N個欄位的資料集

        metirc取值為:’euclidean’:歐氏距離(預設)‘seuclidean’:標準化歐氏距離;‘mahalanobis’:馬氏距離… 】

pdist產生一個M*(M-1)/2個元素的行向量,分別表示M個樣本兩兩間的距離。這樣可以縮小儲存空間,不過,對於讀者來說卻是不好操作,因此,若想簡單直觀的表示,可以用squareform函數將其轉化為方陣,其中x(i,j)表示第i個樣本與第j個樣本之的距離,對角線均為0.

(2)用linkage函數來產生聚類樹

【linkage函數:調用格式:Z=linkage(Y,’method’)

說明:Y為pdist函數返回的M*(M-1)/2個元素的行向量,

  method可取值:‘single’:最短距離法(預設);’complete’:最長距離法;

                                  ‘average’:未加權平均距離法;’weighted’:加權平均法

                                 ‘centroid’: 質心距離法;      ‘median’:加權質心距離法;

                                 ‘ward’:內平方距離法(最小方差演算法)】

返回的Z為一個(M-1)*3的矩陣,其中前兩列為索引標識,表示哪兩個序號的樣本可以聚為同一類,第三列為這兩個樣本之間的距離。另外,除了M個樣本以外,對於每次新產生的類,依次用M+1、M+2、…來標識。

為了表示Z矩陣,我們可以用更直觀的聚類數來展示,方法為:dendrogram(Z), 產生的聚類數是一個n型樹,最下邊表示樣本,然後一級一級往上聚類,最終成為最頂端的一類。縱軸高度代表距離列。

         另外,還可以設定聚類數最下端的樣本數,預設為30,可以根據修改dendrogram(Z,n)參數n來實現,1<n<M。dendrogram(Z,0)則表n=M的情況,顯示所有分葉節點。

(3)用cophenetic函數評價聚類資訊

【cophenet函數:   調用格式:c=cophenetic(Z,Y)

  說明:利用pdist函數產生的Y和linkage函數產生的Z計算cophenet相關係數。】

cophene檢驗一定演算法下產生的二叉聚類樹和實際情況的相符程度,就是檢測二叉聚類樹中各元素間的距離和pdist計算產生的實際的距離之間有多大的相關性,另外也可以用inconsistent表示量化某個層次的聚類上的節點間的差異性。

(4)最後,用cluster進行聚類,返回聚類列。

 

 

  轉載二:

Matlab提供了兩種方法進行群集。

一種是利用 clusterdata函數對樣本資料進行一次聚類,其缺點為可供使用者選擇的面較窄,不能更改距離的計算方法;

另一種是分步聚類:(1)找到資料集合中變數兩兩之間的相似性和非相似性,用pdistFunction Compute變數之間的距離;(2)用 linkage函數定義變數之間的串連;(3)用 cophenetic函數評價聚類資訊;(4)用cluster函數建立聚類。

1.Matlab中相關函數介紹

1.1  pdist函數

調用格式:Y=pdist(X,’metric’)

說明:用 ‘metric’指定的方法計算 X 資料矩陣中對象之間的距離。’

X:一個m×n的矩陣,它是由m個對象組成的資料集,每個對象的大小為n。

metric’取值如下:

‘euclidean’:歐氏距離(預設);‘seuclidean’:標準化歐氏距離;

‘mahalanobis’:馬氏距離;‘cityblock’:布洛克距離;

‘minkowski’:明可夫斯基距離;‘cosine’:

‘correlation’:                ‘hamming’:

‘jaccard’:                   ‘chebychev’:Chebychev距離。

1.2  squareform函數

     調用格式:Z=squareform(Y,..)

     說明:  強制將距離矩陣從上三角形式轉化為方陣形式,或從方陣形式轉化為上三角形式。

1.3  linkage函數

調用格式:Z=linkage(Y,’method’)

說    明:用‘method’參數指定的演算法計算系統聚類樹。

   Y:pdist函數返回的距離向量;

   method:可取值如下:

  ‘single’:最短距離法(預設);  ‘complete’:最長距離法;

‘average’:未加權平均距離法;  ‘weighted’: 加權平均法;

‘centroid’:質心距離法;      ‘median’:加權質心距離法;

‘ward’:內平方距離法(最小方差演算法)

返回:Z為一個包含聚類樹資訊的(m-1)×3的矩陣。

1.4  dendrogram函數

調用格式:[H,T,…]=dendrogram(Z,p,…)

說明:產生只有頂部p個節點的冰柱圖(譜系圖)。

1.5  cophenet函數

調用格式:c=cophenetic(Z,Y)

說明:利用pdist函數產生的Y和linkage函數產生的Z計算cophenet相關係數。

1.6  cluster 函數

調用格式:T=cluster(Z,…)

說明:根據linkage函數的輸出Z 建立分類。

1.7  clusterdata函數

調用格式:T=clusterdata(X,…)

說明:根據資料建立分類。

T=clusterdata(X,cutoff)與下面的一組命令等價:

Y=pdist(X,’euclid’);

Z=linkage(Y,’single’);

T=cluster(Z,cutoff);

2. Matlab程式

2.1 一次聚類法

X=[11978 12.5 93.5 31908;…;57500 67.6 238.0 15900];

T=clusterdata(X,0.9)

2.2  分步聚類

Step1  尋找變數之間的相似性

用pdistFunction Compute相似矩陣,有多種方法可以計算距離,進行計算之前最好先將資料用zscore函數進行標準化。

X2=zscore(X);  %標準化資料

Y2=pdist(X2);  %計算距離

Step2   定義變數之間的串連

Z2=linkage(Y2);

Step3  評價聚類資訊

   C2=cophenet(Z2,Y2);       //0.94698

Step4 建立聚類,並作出譜系圖

     T=cluster(Z2,6);

     H=dendrogram(Z2);

分類結果:{加拿大},{中國,美國,澳大利亞},{日本,印尼},{巴西},{前蘇聯}

剩餘的為一類。 引自:http://blog.sina.com.cn/s/blog_5a13cf680100aj18.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.