【问题标题】:Cluster PAM in R - How to ignore a Column/variable but still keep itR中的集群PAM-如何忽略列/变量但仍保留它
【发布时间】:2013-12-08 09:41:42
【问题描述】:

我想使用 R 中的 Cluster PAM 算法对大约 6000 行的数据集进行聚类。 我希望 PAM 算法忽略名为“ID”的列(不在集群中使用它),但我不想删除该列。我想稍后使用该列将我的聚类数据与原始数据集结合起来。 基本上我想要的是在原始数据集中添加一个集群列。 我想使用 PAM 作为数据压缩/变量减少方法。我有 220 个变量,我想对一些变量进行聚类并降低我的数据集的维数,这样我就可以应用分类算法(很可能是一棵树)来对我要解决的问题进行分类。 如果有人知道解决此问题的方法或更好的方法,请告诉我。 谢谢

【问题讨论】:

    标签: r cluster-analysis


    【解决方案1】:

    导入数据

    data <- read.table(“sampleiris.txt”)
    

    执行

    result <- pam(data[2:4], 3, FALSE, “euclidean”)  
    

    考虑到 id 是第一列,这里的子集 [2:4] 已经完成。下面的代码应该从 PAM 中获取集群值。您可以将此作为列添加到您的数据中

    result$silinfo[[1]][1:nrow(pam.result$silinfo[[1]])]
    

    【讨论】:

    • 感谢您提供出色的代码。您能否解释一下最后一个代码,即获取结果的代码。
    【解决方案2】:

    他们是上面代码中的一个小问题。 您不应该使用剪影信息,因为它会重新排列行作为绘图的准备。 如果要在保留原始数据集顺序并仅添加一列集群分配的同时提取集群分配,则应使用 $cluster。我试过了,效果很好。

    这是代码:

        data<- swiss[4:6]
        result <- pam(data, 3)
        summary (result)
        export<-result$cluster
        swiss[,"Clus"]<- export
        View(export)
        View(swiss)
    

    干杯

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多