我想在R中使用Cluster PAM算法来聚类大约6000行的数据集。 我希望PAM算法忽略名为“ID”的列(不在群集中使用它),但我不想删除该列。我想稍后使用该列将我的聚簇数据与原始数据集结合起来。 基本上我想要的是将一个簇列添加到原始数据集。 我想使用PAM作为数据压缩/变量减少方法。我有220个变量,我想聚集一些变量并减少我的数据集的维度,所以我可以应用分类算法(很可能是一棵树)来分类我想要解决的问题。 如果有人知道这种或更好的方法,请告诉我。 谢谢
答案 0 :(得分:1)
导入数据
data <- read.table(“sampleiris.txt”)
执行
result <- pam(data[2:4], 3, FALSE, “euclidean”)
这里的子集[2:4]是完成的,考虑到id是第一列。下面的代码应该从PAM中获取簇值。您可以将其添加为数据列
result$silinfo[[1]][1:nrow(pam.result$silinfo[[1]])]
答案 1 :(得分:0)
它们是上述代码中的一个小问题。 您不应该使用轮廓信息,因为它会重新排序行作为绘图的准备。 如果要在保留原始数据集顺序的同时提取集群分配并仅添加一组集群分配,则应使用$ cluster。我尝试了它,它就像一个魅力。
这是代码:
data<- swiss[4:6]
result <- pam(data, 3)
summary (result)
export<-result$cluster
swiss[,"Clus"]<- export
View(export)
View(swiss)
干杯