這篇文章主要講解了“R語言層次聚類與聚類樹怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“R語言層次聚類與聚類樹怎么使用”吧!
網(wǎng)站建設(shè)公司,為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對(duì)成都樓梯護(hù)欄等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。專業(yè)網(wǎng)站設(shè)計(jì),網(wǎng)站優(yōu)化推廣哪家好,專業(yè)seo優(yōu)化優(yōu)化,H5建站,響應(yīng)式網(wǎng)站。
在生態(tài)學(xué)研究當(dāng)中,有些環(huán)境中的對(duì)象是連續(xù)(或者離散)的,而有些對(duì)象是不連續(xù)的,聚類的目的是識(shí)別在環(huán)境中不連續(xù)的對(duì)象子集,從而探索隱藏在數(shù)據(jù)背后的屬性特征。聚類分析主要處理那些對(duì)象有足夠的相似性被歸于一組,并且確定組與組之間的差異或分離程度。聚類可以分為特征聚類(Vector Clustering)和圖聚類(Graph Clustering)。特征聚類是指根據(jù)對(duì)象的特征向量矩陣來計(jì)算距離或者相關(guān)性來實(shí)現(xiàn)聚類,例如各種層次聚類和非層次聚類。而圖聚類則針對(duì)的是復(fù)雜網(wǎng)絡(luò)數(shù)據(jù),有隨機(jī)游走、貪心策略、標(biāo)簽傳播等算法等。
根據(jù)對(duì)象歸屬方法,有以下兩種:
⑴硬劃分,也即將總體劃分為不同的部分,每個(gè)對(duì)象或者變量只能歸屬于某一組(身份信息為0或1)。
⑵模糊劃分,對(duì)象歸屬身份信息可以是連續(xù)的,也即身份信息可以是0到1中間的任意值。
聚類的結(jié)果可以輸出為無層級(jí)分組,也可以是具有嵌套結(jié)構(gòu)的層次聚類樹。非約束的聚類分析只是一種數(shù)據(jù)劃分,不是典型的統(tǒng)計(jì)方法,因此不必進(jìn)行統(tǒng)計(jì)檢驗(yàn),但是約束的聚類分析(多元回歸樹)需要進(jìn)行統(tǒng)計(jì)檢驗(yàn)。
⑴單連接聚合聚類
單連接聚合聚類(singlelinkage agglomerative clustering)也稱作最近鄰分類(nearestneighbour sorting),依據(jù)最短的成對(duì)距離或最大相似性來依次連接對(duì)象直到連接完畢,兩個(gè)組之間最近的兩個(gè)對(duì)象之間距離即為組的距離。此方法一般使用弦距離矩陣(歐氏距離)進(jìn)行分析,在hclust()函數(shù)中為"single"。
⑵完全連接聚合聚類
完全連接聚合聚類(completelinkage agglomerative clustering)也稱作最遠(yuǎn)鄰分類(furthestneighbour sorting),依據(jù)最遠(yuǎn)距離決定一個(gè)對(duì)象或者一個(gè)組是否與另一個(gè)組聚合,所有對(duì)象之間的距離必須完全計(jì)算然后進(jìn)行比較。単連接聚合聚類更容易體現(xiàn)數(shù)據(jù)的梯度,而完全連接聚合聚類分類組之間差異更加明顯。在在hclust()函數(shù)中為"complete"。
⑶平均聚合聚類
平均聚合聚類(averageagglomerative clustering)是一類基于對(duì)象之間平均相異性或者聚類簇形心(centroid)的進(jìn)行聚類的方法。一個(gè)對(duì)象加入一個(gè)組依據(jù)的是這個(gè)對(duì)象與這個(gè)組成員的平均距離。在hclust()函數(shù)中有等權(quán)重算術(shù)平均聚類"average"(UPGMA)、不等權(quán)重算術(shù)平均聚類"mcquitty"(WPGMA)、等權(quán)重形心聚類"centroid"(UPGMC)、不等權(quán)重形心聚類"median"(WPGMC)四種方法。在生態(tài)學(xué)中Bray-Curtis距離矩陣一般使用方法"average"進(jìn)行分析,其聚類樹結(jié)構(gòu)介于單連接和完全連接聚類之間。
⑷最小方差聚類
Ward最小方差聚類是一種基于最小二乘法線性模型準(zhǔn)則的聚類方法。分組的依據(jù)是使組內(nèi)距離平方和(方差)最小化,由于使用了距離的平方,常常使聚類樹基部過于膨脹,可取平方根再進(jìn)行可視化。在hclust()函數(shù)中有"ward.D"、"ward.D2"兩種方法。
#讀取群落數(shù)據(jù)并計(jì)算Bray-Curtis距離矩陣data=read.table(file="sample.subsample.otu_table.txt", header=T, check.names=FALSE)rownames(data)=data[,1]data=data[,-1]library(vegan)data=decostand(data, MARGIN=2, "total")otu=t(data)otu_dist=vegdist(otu, method="bray", diag=TRUE, upper=TRUE, p=2)#進(jìn)行聚類分析并作圖hclust=hclust(otu_dist, method="average")plot(hclust)
聚類樹如下圖所示:
library(dendextend)library(circlize)tree=as.dendrogram(hclust)par(mfrow=c(2,2), mar=c(3,3,1,5), cex=0.7)plot(tree, horiz=TRUE, main="UPGMA Tree")#隱藏平均距離小于0.5的對(duì)象(類群)plot(cut(tree, h=0.5)$upper, horiz=TRUE, main="Samples with distance higher than 0.5")#在上一步基礎(chǔ)上篩選第二個(gè)分類簇plot(cut(tree, h=0.5)$upper[[2]], horiz=TRUE, main="Second branch samples with distance higher than 0.5")circlize_dendrogram(tree)
par(mfrow=c(1,1), mar=c(3,3,3,5), cex=1)#讀取群落數(shù)據(jù)并計(jì)算Bray-Curtis距離矩陣data=read.table(file="sample.subsample.otu_table.txt", header=T, check.names=FALSE)rownames(data)=data[,1]data=data[,-1]library(vegan)data=decostand(data, MARGIN=2, "total")otu=t(data)otu_dist=vegdist(otu, method="bray", diag=TRUE, upper=TRUE, p=2)#進(jìn)行聚類分析并作圖hclust=hclust(otu_dist, method="average")library(dendextend)library(RColorBrewer)hcd=as.dendrogram(hclust)labelColors=brewer.pal(n=4, name="Set1")#聚類分組,預(yù)設(shè)聚類簇?cái)?shù)目為4clusMember=cutree(hcd, 4)#自定義函數(shù),根據(jù)聚類結(jié)果進(jìn)行著色colLab=function(n) { if (is.leaf(n)) { a=attributes(n) labCol=labelColors[clusMember[which(names(clusMember)==a$label)]] attr(n, "nodePar")=c(a$nodePar, lab.col=labCol) } n}clusDendro=dendrapply(hcd, colLab)plot(clusDendro, main ="UPGMA Tree", type="rectangle", horiz=TRUE)
軟件包dendextend是一個(gè)很好的聚類樹可視化工具,可以使用“%>%”來對(duì)tree文件進(jìn)行更新美化,如下所示:
hcd=hcd %>% set("labels_cex", 1.5) %>% set("branches_lwd", 2) %>% set("branches_k_color", k=4) %>% set("branches_k_lty", k=4) clusDendro=dendrapply(hcd, colLab)plot(clusDendro, main="UPGMA Tree", type="rectangle", horiz=TRUE)
感謝各位的閱讀,以上就是“R語言層次聚類與聚類樹怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)R語言層次聚類與聚類樹怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
新聞名稱:R語言層次聚類與聚類樹怎么使用
新聞來源:http://jinyejixie.com/article38/ghhepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站排名、做網(wǎng)站、ChatGPT、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)