如何为 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))
我想基于 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))