gpt4 book ai didi

r - R 中的模糊 C 均值聚类

转载 作者:行者123 更新时间:2023-12-01 00:15:18 24 4
gpt4 key购买 nike

我正在对一些数据执行模糊聚类。我首先缩放数据框,因此每个变量的平均值为 01. 的 sd然后我跑了 clValid包中的函数 clValid如下:

library(dplyr)
df<-iris[,-5] # I do not use iris, but to make reproducible
clust<-sapply(df,scale)
intvalid <- clValid(clust, 2:10, clMethods=c("fanny"),
validation="internal", maxitems = 1000)

结果告诉我 4 将是最好的集群数量。因此我运行了 fanny来自 cluster 的函数包装如下:
res.fanny <- fanny(clust, 4, metric='SqEuclidean')
res.fanny$coeff
res.fanny$k.crisp
df$fuzzy<-res.fanny$clustering
profile<-ddply(df,.(fuzzy),summarize,
count=length(fuzzy))

然而,在看 profile ,我只有 3 个集群而不是 4 个。这怎么可能?我应该使用 3 个集群而不是 4 个集群吗?我该如何解释?我不知道如何重新创建我的数据,因为它非常大。就像其他人以前遇到过一样?

最佳答案

这是基于有限信息的答案尝试,它可能无法完全解决提问者的情况。听起来可能还有其他问题。在聊天中,他们表示他们遇到了我无法重现的其他错误。 Fanny 将根据指标计算项目并将其分配到“清晰”集群。它还将生成一个矩阵,显示可以使用 membership 访问的模糊聚类分配。 .

可以通过增加 memb.exp 重新创建提问者描述的问题。参数使用 iris 数据集。下面是一个例子:

library(plyr)
library(clValid)
library(cluster)
df<-iris[,-5] # I do not use iris, but to make reproducible
clust<-sapply(df,scale)

res.fanny <- fanny(clust, 4, metric='SqEuclidean', memb.exp = 2)

调用 res.fanny$k.crisp表明这会产生 4 个清晰的簇。
res.fanny14 <- fanny(clust, 4, metric='SqEuclidean', memb.exp = 14)

调用 res.fanny14$k.crisp表明这会产生 3 个清晰的簇。

仍然可以使用 res.fanny14$membership 访问 4 个集群中每个集群的成员资格。 .

如果您有充分的理由认为应该有 4 个清晰的簇,可以减少 memb.exp范围。这将收紧集群分配。或者,如果您正在进行某种监督学习,调整此参数的一个过程是保留一些测试数据,进行超参数网格搜索,然后选择在您的首选指标上产生最佳结果的值。然而,如果不了解更多关于任务、数据或提问者试图完成的任务,就很难提出比这更多的建议。

关于r - R 中的模糊 C 均值聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com