【问题标题】:Cluster analysis in R with dummy coded variablesR中带有虚拟编码变量的聚类分析
【发布时间】:2017-01-08 21:01:59
【问题描述】:

我正在尝试对一组数据进行聚类分析,但无法找到正确的见解。示例:我在 100 个资源(列)中有一组 50 个变量(行)。每种资源都有一些变量,如强项和弱点。我将强度标记为 1,将弱点标记为 2。因为,每个资源可能只有 10 个变量作为强度,5 个变量作为弱点,因此其他遗漏的变量被标记为零。现在,我想找到具有共同优势和劣势的资源集群。

我通过转置数据集来使用层次聚类和 k-means,以便资源在行中。 k-means 图显示不同聚类之间有太多重叠,因此仅使用层次聚类。我已将 1(强度)替换为 +10,将 2(弱)替换为 -10,以查看集群算法的响应是否不同,但仍然没有太大帮助。

有任何意见可以改进此方法和处理此问题的替代方法吗?

非常感谢!

【问题讨论】:

    标签: r cluster-analysis k-means hierarchical-clustering


    【解决方案1】:

    以下代码应该可以帮助您制作虚拟/二进制变量。

    settingStrength <- as.numeric(setting.g == "Strength")
    settingWeakness   <- as.numeric(setting.g == "Weakness")
    

    我将重点放在数据集的第 3 列和第 4 列上称为层次聚类。您不能对 100 个维度进行聚类并将它们绘制在二维图中。您必须首先降低维度。您选择层次聚类是对的,因为 k-means 要求您知道聚类的数量而您不知道它们

    CLUSTER <- hclust(dist(YOURDATA[, 3:4]))
    plot(CLUSTER)
    

    但是,如果您使用 k-means,您不应该只看图。下面我选择了三组聚类。

    KMEANSCLUSTER <- kmeans(YOURDATASET[,3:4],3)
    KMEANSCLUSTER[1]
    

    现在您应该看到一个长度为 15(数据长度)和值 1,2 和 3 的向量。该变量是否属于集群“1”、集群“2”或集群“的值3"。

    【讨论】:

    • 谢谢。我必须自己识别并将其虚拟编码为 1-强度、2-弱点、0-无识别。将 1 替换为 +10 并将 2 替换为 -10 对层次聚类算法有什么不同的意义吗?另外,我如何降低维度(100 个资源)然后进行聚类,因为我想查看哪个资源在哪个集群中?为了找到整个集群的优势和劣势的负载,我使用了该集群中变量的频率平均值。集群 1 包含 10 个资源的示例,如果在 5 个资源中注意到 X 强度,则负载为 0.5,对吗?
    • 您是否考虑过包含 2 个二进制变量?第一个变量:1-强度0-否则;第二个变量 1- 弱点 0- 其他。对于两个二进制变量,没有标识会给你 0。
    • 您可以使用 PCA 降低维度并绘制缩减数据集的集群。你只需要解释变量。并且分配值 +10 和 -10 不会给你任何更好的结果。它只会让解释变得更加困难。
    • 谢谢。因此,这意味着我必须在电子表格中为每个资源创建 3 个额外的列。 100*3=300 列?如果是这种情况,那么我认为会增加 2 列。资源 A 强度列 (1-strength,0),资源 A 弱点列 (1-Weakness,0)。抱歉,如果您的意思不同?
    • 太棒了。这就是我的意思。如果要将“n”个类别作为二进制变量包含在数据集中,则需要包含“n-1”个二进制变量。除参考类别外,每个类别都有一个。在你的情况下 "n" = 3 和 "n-1" = 2
    【解决方案2】:

    聚类二进制数据(以及低基数和分类虚拟编码数据)的问题在于它是二进制信息。

    k-means 等方法是为连续变量设计的,其中均值是有意义的,并且几乎每个距离都是唯一的。

    对于二进制数据,一切都会同时发生变化。您有许多重复记录。您的记录在 1 个位置、2 个位置等上有所不同 - 在您的情况下,它们最多可以在 30 个位置上有所不同,因此您有 31 个相似级别。

    解决方案通常是从聚类转向项集挖掘视图。这与聚类并没有根本的不同,但它始于一个二元假设:一个项目要么存在于交易中,要么不存在。得到的项集然后对应于频繁的组合,例如具有 A 和 B 的行往往具有 C。

    试试看,频繁项集和关联规则。

    【讨论】:

    • 感谢您的建议。我没有尝试过关联规则。您能否为我提供一个虚拟代码/流程图/示例链接?我基本上会对资源进行聚类,因此必须转置数据框,以便资源在行中,变量在列中。
    • 拿起你最喜欢的数据挖掘书籍,阅读关联规则章节。
    猜你喜欢
    • 2014-07-31
    • 2016-03-19
    • 2018-09-01
    • 1970-01-01
    • 2015-07-04
    • 2018-07-20
    • 2018-11-16
    • 2019-01-23
    • 2018-09-16
    相关资源
    最近更新 更多