是什麼啟發了我提出這個願望清單?我希望運行聚類分析,其中聚類中心 (medoids) 被限制為資料表中的行(這與 kmeans 不同,kmeans 中的均值可能不是表中的一行,並且滿足約束條件)。
您希望看到哪些改進?或許可以在「分析」>「聚類」選單中加入。以下是一些 R 程式碼範例。
library(cluster)
n <- 200
X <- data.frame(
x1 = rnorm(n),
x2 = runif(n, 0, 10),
f1 = factor(sample(letters[1:3], n, TRUE)),
f2 = factor(sample(c("lo","mid","hi"), n, TRUE))
)
d <- daisy(X, metric = "gower")
fit <- pam(d, k = 5, diss = TRUE)
cl <- fit$clustering
medoid_rows <- fit$id.med
cat("Medoid row indices:", medoid_rows, "\n\n")
cat("Medoid rows (one per cluster):\n")
print(X[medoid_rows, ], row.names = FALSE)
cat("\nCluster sizes:\n")
print(table(cl))
> cat("Medoid row indices:", medoid_rows, "\n\n") Medoid row indices: 170 111 191 200 68 > cat("Medoid rows (one per cluster):\n") Medoid rows (one per cluster): > print(X[medoid_rows, ], row.names = FALSE) x1 x2 f1 f2 -0.42460961 4.116528 b mid -0.08807738 7.593479 b hi -0.32078302 2.121084 c lo 0.28653902 4.962979 c mid 0.30942313 2.652641 a lo > cat("\nCluster sizes:\n") Cluster sizes: > print(table(cl)) cl 1 2 3 4 5 33 43 43 35 46
為什麼這個想法很重要?
我想在由 Profiler 中的輸出隨機表生成的表上使用它來選擇不同的高度理想因子設定的子集,並且當存在混合或其他約束時需要它而不是 k-means。
這是一個很有趣的建議,我們會內部討論。謝謝您的發文。