各位小伙伴們大家好,這幾天我在學(xué)習(xí)聚類分析這個統(tǒng)計方法,所以希望通過這個文章來概括下自己所學(xué)的知識,并且希望大家可以指出不足
1:什么是聚類分析?
聚類分析(cluster analysis)是一種將數(shù)據(jù)所研究的對象進行分類的統(tǒng)計方法,像聚類方法這樣的一類方法有個共同的特點:事先不知道類別的個數(shù)和結(jié)構(gòu),據(jù)以進行分析的數(shù)據(jù)是對象之間的相似性(similarity)和相異性(dissimilarity)的數(shù)據(jù).將這些相似(相異)的數(shù)據(jù)可以看成是對象與對象之間的”距離”遠近的一種度量,將距離近的對象看做一類,不同類之間的對象距離較遠,這個可以看作為聚類分析方法的一個共同的思路.
聚類分析可以根據(jù)分類對象的不同分為Q類型聚類分析和R類型聚類分析.
Q類型可以看做為對于樣本的聚類,R類型可以看作為對于變量進行聚類分析.
2:距離和相似系數(shù)
其實個人覺得,聚類分析本質(zhì)上就是研究樣本和變量的聚類的一個過程,盡管我們在聚類的時候使用的方法有很多,但是這樣的方法的選擇往往都和變量的類型有關(guān)系,因為數(shù)據(jù)來源和測量方法的不同,我們可以把變量大致分為兩類:
1:定量的變量:比如說我們的長度重量,人口,速度等,這些變量都是由具體的特征數(shù)值所構(gòu)成,很多都是用真實的測量計數(shù)而來
2:定性變量:這樣的量并非只有數(shù)量上的變化,但是往往有一些性質(zhì)上的差異,比如說成績的名次,性別,產(chǎn)品的型號等等.
1:距離:
現(xiàn)在設(shè)X(ik)為第i個樣本的第K個指標(biāo),數(shù)據(jù)矩陣如圖所示:
每一個樣本都具有P個變量,現(xiàn)在我們把每個樣本看成為一個點,這n個樣本就可以看作為n個點,第i個樣本與第j個樣本之間的距離記作為d(ij),在聚類的過程中,個人傾向于距離較近的點歸為一類,距離較遠的點歸為不同的類.距離必須滿足一下幾個條件:
1:對于一切的i,j,d(ij)>=0;
2:d(ij)=0,當(dāng)且僅當(dāng)i,j個樣本的各種變量相同;
3:dij=dji,對于一個i,j
4:dij<=dik+dkj,對于一切i,j,k
對于求距離的幾種常用的方法:
1:求絕對值距離:
2:Euclide距離:
3:Minkowski距離:
這里我發(fā)現(xiàn)絕對值距離和Eucide距離是MinKowski距離的特例,要是各種變量的單位不同或者測量值范圍相差很大時,不應(yīng)該采用Minkowski距離,應(yīng)該是先進行標(biāo)準(zhǔn)化數(shù)據(jù)處理,然后再用標(biāo)準(zhǔn)化數(shù)據(jù)進行計算.
4:chebyshev距離:
這個是minkowski距離中q趨向于無窮的時候的狀況
以上的這幾種都是丟定量變量的距離定義,還有幾種定性的變量距離定義的方法,接下來打算用實例的時候再結(jié)合進行解釋:
2:相似系數(shù)
聚類分析方法不僅用對樣本進行分類,而且也可以用對變量進行分類,在對變量進行分類時,一般用相似系數(shù)來度量變量之間的相似程度:
現(xiàn)在我們設(shè)C(ij)表示Xi和Xj間的相關(guān)系數(shù)一般要求:
當(dāng)C(ij)越接近于1,說明Xi和Xj之間的關(guān)系也就越親切,如果C(ij)越接近0,則兩者的關(guān)系也就越疏遠.一般用求夾角余弦的方法,來求相似的系數(shù).
3:一個實例:
對305名女中學(xué)生測量8個相關(guān)的體型指標(biāo),相應(yīng)的相關(guān)矩陣如下圖所示,將相關(guān)系數(shù)看做相似系數(shù),定義距離為:
現(xiàn)在使用最長距離法做系統(tǒng)分析:
現(xiàn)在解題的方法如下:
首先,我們先輸入相應(yīng)的相關(guān)系數(shù)矩陣,這里使用R語言來進行操作:
1:先輸入相關(guān)的矩陣
然后做相關(guān)的系統(tǒng)聚類分析
這里邊使用了一個新的函數(shù)as.dist(),其作用是將普通的矩陣轉(zhuǎn)化為聚類分析所使用的距離結(jié)構(gòu)
d<-as.dist(1-r);hc<-hclust(d);dend<-as.dendrogram(hc)
然后寫一段小程序,在繪圖命令中調(diào)用它,使譜系圖變得更好看
最后一步,畫出譜系圖:
de <- dendrapply(dend,addE);plot(de,nodePar= nP)
所有的代碼如圖所示:
所得到的圖形如圖所示:
從這個圖里我們可以看出,變量X2(手臂長)與X3(上肢長)首先合為一類,接下來是X1(身高)和X4(下肢長)合并為一了你,在合并就是講得到的類合并為一個新類,后邊的X5和X3合并,最后X7,X8合并為一類.
這個時候,肯定有很多的小伙伴們想,在聚類中類的個數(shù)應(yīng)該怎么選擇才是最適宜的,所以我想在下一篇文章中講一講我對于類的個數(shù)的確定以及系統(tǒng)聚類法的自己學(xué)習(xí)的一些經(jīng)驗.
PS:自己在學(xué)習(xí)中,曾經(jīng)陷入到了深陷算法推理的迷局,往往花費大量時間,還得不到結(jié)果,但是我們并不是每個人都有數(shù)學(xué)天賦,并不是每個人都是數(shù)學(xué)家,這個時代更最看重的是我們的應(yīng)用能力,我們只需要保證我們理解調(diào)用就好,所以我盡量減少算法推理過程,加強工具的使用過程,大家一起加油吧!