如何为 k-means 或 PAM 聚类加权一组变量?

How to weight a set of variables for k-means or PAM clustering?

我想基于 140 个进行聚类 variables.The 前 6 个变量比其余 134 个变量更重要。所以我计划对所有变量进行加权,前 6 个加权“1”,其他加权“ 0.5".

我在这里得到了一些信息:Weighted Kmeans R

接受的答案建议使用 flexclust 包进行加权 k 均值聚类,并使用 iris 数据集来展示示例。像这样:

library(flexclust)
data(iris)
cl <- cclust(iris[,-5], k=3, save.data=TRUE,weights 
=c(1,0.5,1,0.1),method="hardcl")
cl  
kcca object of family ‘kmeans’ 

call:
cclust(x = iris[, -5], k = 3, method = "hardcl", weights = c(1, 
0.5, 1, 0.1), save.data = TRUE)

cluster sizes:

 1  2  3 
50 59 41 

我的主要疑问是我的数据集变量太多,我无法使用 weights = c(1, 0.5, 1, 0.1) 等代码对所有变量进行加权。还有其他想法可以同时对一组变量进行加权吗?加权变量也适用于 PAM 吗?

如果您只需要生成 140 个权重以便前 6 个变量的权重更高,您可以这样做:

weights = rep(c(1, 0.5), c(6, 134))