聚類分析及MATLAB應用

2023-01-11 03:06:03 字數 4882 閱讀 5447

聚類分析

人類認識世界往往首先將被認識的物件進行分類,聚類分析是研究分類問題的多元資料分析方法,是數值分類學中的一支。

多元資料形成資料矩陣,見下表1。在資料矩陣中,共有n個樣品 x1,x2,…,xn(列向),p個指標(行向)。聚類分析有兩種型別:按樣品聚類或按變數(指標)聚類。

表1 資料矩陣

聚類分析的基本思想是在樣品之間定義距離,在變數之間定義相似係數,距離或相似係數代表樣品或變數之間的相似程度。按相似程度的大小,將樣品(或變數)逐一歸類,關係密切的類聚到乙個小的分類單位,然後逐步擴大,使得關係疏遠的聚合到乙個大的分類單位,直到所有的樣品(或變數)都聚集完畢,形成乙個表示親疏關係的譜系圖,依次按照某些要求對樣品(或變數)進行分類。

一、分類統計量----距離與相似係數

1.樣品間的相似性度量----距離

用樣品點之間的距離來衡量各樣品之間的相似性程度(或靠近程度)。設是樣品之間的距離,一般要求它滿足下列條件:

在聚類分析中,有些距離不滿足3),我們在廣義的角度上仍稱它為距離。

1.1 歐氏距離

1.2 絕對距離

1.3 minkowski 距離

1.4 chebyshev距離

1.5 方差加權距離

其中 1.6 馬氏距離

其中 s 是由樣品算得的協方差矩陣:

樣品聚類通常稱為q型聚類,其出發點是距離矩陣。

2.變數間的相似性度量----相似係數

當對p個指標變數進行聚類時,用相似係數來衡量變數之間的相似程度(或關聯程度)。一般地,若表示變數之間的相似係數,應滿足:

的絕對值越接近於1,說明變數的關聯越大。

相似係數中最常用的是相關係數與夾角余弦。

2.1 相關係數

變數之間的相關係數定義為:

事實上,是變數的觀測值

之間的相關係數。

2.2 夾角余弦

變數的觀測值,其夾角余弦定義為:

變數聚類通常稱為 r 型聚類。在 r 型聚類中,相似係數矩陣 c 是出發點,相似係數矩陣可以是相關矩陣,也可以是夾角余弦矩陣。

二、譜系聚類法

這裡所介紹的是樣品的譜系聚類法。

1.類間距離定義

為簡單起見,以i,j分別表示樣品,以dij簡記i,j之間的距離。gp,gq分別表示兩個類,設它們分別含有np,nq個樣品。若類gp中有樣品,則其均值

稱為類 gp 的重心。類gp與gq之間的距離記為 dpq,有多種多樣定義方式。

1.1 最短距離

1.2 最長距離

1.3 類平均距離

1.4 重心距離

1.5 離差平方和距離

2.類間距離的遞推公式

按照譜系聚類法的思想,先將樣品聚合成小類,在逐步擴大為大類。設類 gr由類gp、gq合併所得,則gr包含nr=np+nq個樣品。

問題:由gp,gq與其它類gk(k≠p,q)的距離計算gr與gk(k≠p,q)的距離,即建立類間距離的遞推公式。

2.1 最短距離

2.2 最長距離

2.3 類平均距離

2.4 重心距離

2.5 離差平方和距離

3.譜系聚類法的步驟

譜系聚類法的步驟如下:

step1 n 個樣品開始時作為 n 個類,計算兩兩之間的距離,構成乙個對稱距離矩陣:

此時,dpq=dpq;

step2 選擇 d(0)中的非對角線上的最小元素,設這個最小元素是 dpq。此時,gp=,gq=。將gp,gq合併成乙個新類

gr=。在 d(0)中消去gp和gq所對應的行與列,並加入有新類gr與剩下的其它未聚合的類間的距離所組成的一行和一列,得到乙個新的距離矩陣d(1),它是n-1階方陣;

step3 從 d(1)出發重複 step2 的作法得 d(2),再由d(2)出發重複上述步驟,直到n個樣品聚為1個大類為止;

注意:在合併過程中要記下合併樣品的編號及兩類合併時的水平(即距離)並繪製聚類譜系圖。

4.譜系聚類法的統計量

用譜系聚類法聚類時,聚多少類合適,這是乙個實際的問題。乙個較好的聚類應該在類內閣樣品盡可能相似的前提下,使得類的個數盡可能少。這裡需要考慮譜系距離用到的統計量,利用它們,可以在一定程度上判別聚多少類為合適。

4.1 r2統計量

設譜系得第 g 層共有g個類,定義

其中為gk的重心,sk越小,說明gk中各樣品越相似。

定義 r2 統計量如下:

r2總是隨著分類數目的減少而減小,可以從r2值的變化看n個樣品分成幾類最合適。比如,分為5類以前各類的r2減小較緩慢;假定分為5類時,r2=0.85,而下一次合併,即分為4類時r2減小較快,如r2=0.

35,則認為分為5類較合適。

4.2 半偏相關統計量

這一統計量與離差平方和距離有關。設類 gp,gq的離差平方和分別是

將 gp,gq合併成gr後的離差平方和為

合併後的離差平方和增量為

定義半偏相關統計量為:

sprsq是上一步r2值與該步r2值的差值,當sprsq值越大時,說明上一次合併效果越好。

4.3 偽f統計量

偽f統計量 psf是

psf值越大表示這些觀測可顯著地分為 g 個類。

4.4 偽 t2 統計量

設sp,sq,wpq的含義如前所述,定義偽 t2 統計量為

pst2大,說明合併gp,gq為gr後,使得離差平方和的增量wpq相對於原gp,gq的類內離差平方和大。這表明合併的兩個類gp,gq是很分開的,也就是上一次聚類效果較好。

三、快速聚類法

參見:范金城,梅長林. 資料分析(p228-241).北京:科學出版社。

聚類分析課堂例題

為了研究世界各國森林、草原資源的分布規律,共抽取了21個國家的資料,每個國家4項指標,原始資料見下表1。使用該原始資料對國別進行聚類分析。

表1 抽樣資料表

matlab 解答

matlab提供了兩種方法進行聚類分析。

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

另一種是分步聚類:(1)找到資料集合中變數兩兩之間的相似性和非相似性,用pdist函式計算變數之間的距離;(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』:

『correlationhamming』:

『jaccardchebychev』:chebychev距離。

1.2 squareform函式

呼叫格式:z=squareform(y,..)

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

1.3 linkage函式

呼叫格式:z=linkage(y,』method』)

說明:用『method』引數指定的演算法計算系統聚類樹。

y:pdist函式返回的距離向量;

method:可取值如下:

『single』:最短距離法(預設); 『complete』:最長距離法;

『**erage』:未加權平均距離法; 『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 尋找變數之間的相似性

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

x2=zscore(x); %標準化資料

y2=pdist(x2); %計算距離

step2定義變數之間的連線

z2=linkage(y2);

step3 評價聚類資訊

c2=cophenet(z2,y20.94698

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

t=cluster(z2,6);

h=dendrogram(z2);

模糊動態聚類分析

定義函式 模糊統計,m0劃分區間個數 n,m size a 獲得矩陣的行列數 amin a 1,1 a的最小值 amax a 1,2 a的最大值 for i 1 n if a i,1 a i,2 x a i,2 a i,2 a i,1 a i,1 x end a的最小值 if a i,1 if a ...

MATLAB優化應用

mathematica 1 線性規劃模型 一 線性規劃問題 例項1 生產計畫問題 假設某廠計畫生產甲 乙兩種產品,現庫存主要材料有a類3600公斤,b類2000公斤,c類3000公斤。每件甲產品需用材料a類9公斤,b類4公斤,c類3公斤。每件乙產品,需用材料a類4公斤,b類5公斤,c類10公斤。甲單...

模糊聚類分析方法作業

模糊聚類分析的原理就是運用模糊等價關係進行分類的一種分析方法。將代分事物的全體作為論域,設論域為被分類物件,每個物件又有個指標表示其性狀,即 於是,得到原始資料矩陣為 其中表示第個分類物件的第個指標的原始資料。模糊聚類分析的實質就是按照莫衷標準鑑別事物之間的接近程度,把彼此接近的事物歸為一類。模糊聚...