[英]Using cluster.stats with hclust
我在兩個不同的hclust群集上使用cluster.stats時遇到問題。 那不可能嗎?
我使用的版本是0.99.491 –©2009-2015 RStudio,Inc.,並安裝了以下軟件包:
mylib <- "/Users/Klaus/R Packages/"; mylib
install.packages("NbClust",lib=mylib)
install.packages("modeltools",lib=mylib)
install.packages("flexclust",lib=mylib)
install.packages("RTextTools",lib=mylib) # Amazon's default machine image uses the Atlas BLAS. R points to that when installed with all defaults, but RTextTools expects the ordinary BLAS.
install.packages("mclust",lib=mylib)
install.packages("fpc",lib=mylib)
library("NbClust",lib=mylib)
library("modeltools",lib=mylib)
library("flexclust",lib=mylib)
library("cluster",lib=mylib)
library("mclust",lib=mylib)
library("fpc",lib=mylib)
我正在創建這些集群:
data(nutrient, package="flexclust")
row.names(nutrient) <- tolower(row.names(nutrient))
nutrient.scaled <- scale(nutrient)
d_eucli <- dist(nutrient.scaled,"euclidean")
fit.single <- hclust(d_eucli, method="single")
fit.average <- hclust(d_eucli, method="average")
但是在它們上使用cluster.stats時出現錯誤:
cluster.stats(d_eucli, fit.single$cluster, fit.average$cluster)
錯誤(在丹麥語設置中):
Fejl i `[<-`(`*tmp*`, j, i, value = Inf) : subscript out of bounds
In addition: Advarselsbeskeder:
1: I max(clustering) : no non-missing arguments to max; returning -Inf
2: I cluster.stats(d_eucli, fit.single$cluster, fit.average$cluster) :
clustering renumbered because maximum != number of clusters
3: I min(bv) : no non-missing arguments to min; returning Inf
4: I min(sij) : no non-missing arguments to min; returning Inf
我想念什么?
hclust將計算樹狀圖,而不是分區。
要執行后面的步驟,請使用cutree
。 這樣您就可以繼續了。
以下代碼應該可以工作,我自己嘗試過:
fit.single <- hclust(d_eucli, method="single")
fit.average <- hclust(d_eucli, method="average")
cut.single <- cutree(fit.single, k=3)
如果您知道群集數(K)或根據其他驗證測試,則應指定群集數(K)
cut.average <- cutree(fit.average, k=3)
cluster.stats(d_eucli, cut.single, cut.average)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.