【问题标题】:How to force a clustering algorithm to match expected results?如何强制聚类算法匹配预期结果?
【发布时间】:2019-11-12 03:28:59
【问题描述】:

我有 2 个包含多个变量的数据集(data_A 和 data_B)。有 2 个可能的输出(pheno_1 和 pheno_2)。我知道 data_A 几乎有 100% 的 pheno_1,而 data_B 有大约 50% 的 pheno_1。但是数据集没有标记。我正在寻找一种聚类或分类算法,以匹配我的预期结果的方式对我的数据进行聚类。然后我将使用聚类来预测不同数据集的输出。

到目前为止,我正在使用 K-Means 并尝试不同的变量集和不同的标准化方法,以获得我正在寻找的最终结果。我想找到一种“自动化”方法,它会尝试不同的组合,直到找到我要找的东西。

暂时没有可显示的代码。

【问题讨论】:

  • 聚类算法一般为unsupervised。如果您想强制结果符合您的期望,您通常必须为其提供一些supervised 信息。或者您可以尝试semi supervised 技术,例如RSSL 包中的技术。
  • 如果数据不支持这种结构怎么办?或者不是由高方差的变量?我认为你要求一些不可能的事情。

标签: r machine-learning cluster-analysis


【解决方案1】:

您可以查看受约束的 K 均值。这是 R packagepaper 解释其背后的理论。它应该允许您指定 k 个约束,您可以在其中确定每个集群的限制。

【讨论】:

    【解决方案2】:

    在 R 包 ConsensusClusterPlus 中,他们自动化了寻找聚类的过程,从而消除了 K-means 的随机性并测试了多个 K-values。

    当涉及到您的问题时,我会建议:

    1. 对 data_B 运行共识聚类
    2. 对于 K 个聚类中的每一个,计算“共识”质心
    3. 对于 data_A 中的每个样本,计算到步骤 2 中质心的距离,并将每个样本分配给最近的质心。
    4. 现在您可以为 data_A 和 data_B 中的所有数据分配一个标签/集群,您可以使用例如训练分类器随机森林或 XGboost。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多