Tôi đang phân cụm theo cấp bậc với gói R có tên pvclust
, được xây dựng trên hclust
bằng cách kết hợp bootstrapping để tính mức ý nghĩa cho các cụm thu được.Lỗi với phân cụm theo cấp bậc đa dạng trong R
Hãy xem xét các dữ liệu sau thiết lập với 3 kích thước và 10 quan sát:
mat <- as.matrix(data.frame("A"=c(9000,2,238),"B"=c(10000,6,224),"C"=c(1001,3,259),
"D"=c(9580,94,51),"E"=c(9328,5,248),"F"=c(10000,100,50),
"G"=c(1020,2,240),"H"=c(1012,3,260),"I"=c(1012,3,260),
"J"=c(984,98,49)))
Khi tôi sử dụng hclust
một mình, clustering chạy tốt cho cả hai biện pháp Euclide và các biện pháp tương quan:
# euclidean-based distance
dist1 <- dist(t(mat),method="euclidean")
mat.cl1 <- hclust(dist1,method="average")
# correlation-based distance
dist2 <- as.dist(1 - cor(mat))
mat.cl2 <- hclust(dist2, method="average")
Tuy nhiên, khi sử dụng từng thiết lập với pvclust
, như sau:
library(pvclust)
# euclidean-based distance
mat.pcl1 <- pvclust(mat, method.hclust="average", method.dist="euclidean", nboot=1000)
# correlation-based distance
mat.pcl2 <- pvclust(mat, method.hclust="average", method.dist="correlation", nboot=1000)
... tôi nhận được các lỗi sau đây:
- Euclide:
Error in hclust(distance, method = method.hclust) : must have n >= 2 objects to cluster
- Tương quan:
Error in cor(x, method = "pearson", use = use.cor) : supply both 'x' and 'y' or a matrix-like 'x'
.
Lưu ý rằng khoảng cách được tính bằng pvclust
do đó không cần tính toán khoảng cách trước. Cũng lưu ý rằng phương thức hclust
(trung bình, trung bình, v.v.) không ảnh hưởng đến vấn đề.
Khi tôi tăng thứ nguyên của tập dữ liệu thành 4, pvclust
hiện hoạt động tốt. Tại sao tôi nhận được các lỗi này cho pvclust
ở 3 kích thước và dưới đây nhưng không phải cho hclust
? Hơn nữa, tại sao các lỗi biến mất khi tôi sử dụng một bộ dữ liệu ở trên 4 thứ nguyên?
Thật tuyệt vời. Thay đổi 'r' làm thủ thuật. cảm ơn. – oisyutat