2016-04-07 16 views
0

Ich habe ein Problem mit cluster.stats auf zwei verschiedenen hclust-Cluster. Ist das nicht möglich?Verwenden von cluster.stats mit hclust

Ich bin auf Version 0.99.491 - © 2009-2015 RStudio, Inc. mit folgenden Pakete installiert:

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) 

ich diese Cluster erschaffe:

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") 

Aber bei der Verwendung von Cluster .stats auf ihnen erhalte ich einen Fehler:

cluster.stats(d_eucli, fit.single$cluster, fit.average$cluster) 

Störung (in dänischer Einstellung):

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 

Was fehlt mir?

Antwort

0

hclust berechnet ein Dendrogramm, keine Partitionierung.

dass letztere Schritt Verwenden Sie dazu cutree. Dann sollten Sie fortfahren können.

0

Das sollte folgende Code arbeiten, habe ich versucht, es selbst:

fit.single <- hclust(d_eucli, method="single") 

fit.average <- hclust(d_eucli, method="average") 

cut.single <- cutree(fit.single, k=3) 

Sie die Anzahl der Cluster (K) angeben sollten, wenn Sie es oder auf andere Validierungstest

cut.average <- cutree(fit.average, k=3) 

cluster.stats(d_eucli, cut.single, cut.average) 
kennen