亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

非層次聚類中clusplot()函數怎么用

發布時間:2022-01-05 15:53:17 來源:億速云 閱讀:388 作者:iii 欄目:大數據

這篇文章主要講解了“非層次聚類中clusplot()函數怎么用”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“非層次聚類中clusplot()函數怎么用”吧!

k-中心點劃分    

k-means算法中選取的是距離均值,那么異常點對其的影響會非常大,很可能這種孤立的點就聚為一類,一個改進的方法就是圍繞實際數據的中心點進行劃分(partitioning aroundmedoids,PAM),也叫k-medoids clustering。其與k-means算法類似,從所有數據觀測點尋找k個代表性的對象或形心點,來反應數據的主體結構,然后將所有觀測點分配給每個形心點構建k個分類簇。不斷迭代來尋找k個代表對象,來獲得最佳的形心點來使得對象間的相異性總和最小。

k-medoids算法是k-means算法的變種,其不一樣的地方在于聚類中心的選取。在k-means算法中將聚類中心選取為當前cluster中所有數據點的平均值,也即非真實的數據點;然而k-medoids算法中,將聚類中心也即中心點的選取限制在當前cluster所包含的數據點的集合中,從當前cluster中選取到其他所有點的距離之和最小的點作為中心點。k-means和k-medoids之間的差異就類似于一個數據樣本的均值和中位數之間的差異。

cluster包中的pam()函數可以使用原始數據或者距離矩陣進行分析,因此十分方便,還可以通過輪廓寬度值確定最佳的分組數量,而fpc包中的pamk()函數可以自動計算最佳的分類簇數目,實例分析如下所示:

#讀取數據data=read.table(file="otu_table.txt", header=TRUE, check.names=FALSE)rownames(data)=data[, 1]data=as.matrix(data[, -1])#將每個樣品的物種數據進行總和標準化(即求相對豐度)library(vegan)data=decostand(data, MARGIN=2, "total")*100otu=t(data)#計算距離矩陣otu_dist=vegdist(otu, method="bray", diag=TRUE, upper=TRUE, p=2)#PAM聚類library(fpc)library(cluster)#確定最佳聚類簇數目pambest=pamk(otu_dist)k=pambest$ncotu_pam=pam(otu_dist, k)mycol=c(99,81,503,562,76,96,495,52,619,453,71,134,448,548,655,574,36,544,89,120,131,596,147,576,58,429,386,122,87,404,466,124,463,552,147,45,30,54,84,256,100,652,31,610,477,150,50,588,621)mycol=colors()[mycol]clusplot(otu_pam, color=TRUE, labels=3, lines=0, cex=1, col.clus=mycol[1:k], col.p=otu_pam$clustering)

clusplot()函數可以對聚類結果進行主成分分析并作圖,結果如下所示:

非層次聚類中clusplot()函數怎么用

根據pamk()函數計算結果最佳聚類簇數目為10,但主成分聚類圖顯示的聚類簇數目要小于10,可以看到不同算法的差異。我們也可以針對PAM聚類繪制輪廓寬度圖,從而幫助挑選最佳聚類簇數目,如下所示:

#繪制輪廓寬度圖asw=numeric(nrow(otu))for (i in 2:(length(asw)-1)) {  asw[i]=pam(otu_dist, i)$silinfo$avg.width}k.best=which.max(asw)plot(1:length(asw), asw, type="h", main="Silhouette of PAM", lwd=2,     xlab="k(number of clusters", ylab="average silhouette")

結果如下所示:

非層次聚類中clusplot()函數怎么用

當k=22時取得最高的輪廓寬度,這與事實是相符的,因為我們所用數據的66個樣品采自22個樣品點,每個點3個平行樣。但總體來看,輪廓寬度值很高,因此不一定挑選k=22,這里只是為pamk()函數判斷結果作參考。

不同算法的側重不同,因此結果會有一些差異。這些算法都可以作為我們的工具庫,我們在實際研究中可以選擇適合自己數據的算法。在公眾號對話框回復“聚類分析”可獲得示例數據下載鏈接。

感謝各位的閱讀,以上就是“非層次聚類中clusplot()函數怎么用”的內容了,經過本文的學習后,相信大家對非層次聚類中clusplot()函數怎么用這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枣庄市| 曲阳县| 寿宁县| 江安县| 保靖县| 彝良县| 右玉县| 永年县| 凉山| 绵阳市| 南靖县| 商城县| 荣成市| 吉首市| 固原市| 襄樊市| 年辖:市辖区| 山东省| 揭东县| 吉木乃县| 博野县| 温州市| 宜川县| 柞水县| 五寨县| 连江县| 丽水市| 行唐县| 滦平县| 杨浦区| 南宫市| 苗栗市| 昌邑市| 余干县| 苏尼特左旗| 东山县| 扎鲁特旗| 大渡口区| 视频| 津市市| 昌吉市|