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