chương trình R của tôi là như sau:lỗi Strange của Hierarchical Clustering trong R
hcluster <- function(dmatrix) {
imatrix <- NULL
hc <- hclust(dist(dmatrix), method="average")
for(h in sort(unique(hc$height))) {
hc.index <- c(h,as.vector(cutree(hc,h=h)))
imatrix <- cbind(imatrix, hc.index)
}
return(imatrix)
}
dmatrix_file = commandArgs(trailingOnly = TRUE)[1]
print(paste('Reading distance matrix from', dmatrix_file))
dmatrix <- as.matrix(read.csv(dmatrix_file,header=FALSE))
imatrix <- hcluster(dmatrix)
imatrix_file = paste("results",dmatrix_file,sep="-")
print(paste('Wrinting results to', imatrix_file))
write.table(imatrix, file=imatrix_file, sep=",", quote=FALSE, row.names=FALSE, col.names=FALSE)
print('done!')
đầu vào của tôi là một ma trận khoảng cách (tất nhiên đối xứng). Khi tôi thực hiện trên chương trình với một ma trận khoảng cách lớn hơn về hàng ngàn hồ sơ (Không có gì xảy ra cho vài trăm), nó đã cho tôi thông báo lỗi:
Error in cutree(hc, h = h) :
the 'height' component of 'tree' is not sorted
(increasingly); consider applying as.hclust() first
Calls: hcluster -> as.vector -> cutree
Execution halted
máy của tôi có khoảng 16GB RAMS và 4CPU, vì vậy nó đã giành' t là vấn đề tài nguyên.
Có ai vui lòng cho tôi biết vấn đề là gì không? Cảm ơn!!
Thực hiện phân cấp theo cấp bậc có độ phức tạp 'O (n^3)' (trên thực tế, thuật toán 'O (n^2)' chỉ dành cho một số phiên bản chuyên biệt, xem 'SLINK',' CLINK '). Nó thực sự có thể do một vấn đề phức tạp, mặc dù lỗi không giống như thế này. –
Tôi muốn đi sâu hơn, coud bạn đăng mẫu dmatrix_file và đưa ra hướng dẫn cách mở rộng quy mô? –
Đồng ý với Peter - bạn không thể tạo dmatrix_file, hoặc tập dữ liệu giả cùng kích thước? – geotheory