【问题标题】:Reverse-engineering a clustering algorithm from the clusters从集群逆向工程聚类算法
【发布时间】:2025-12-27 06:15:06
【问题描述】:

我有一个人类仅根据他们对系统的了解执行的数据聚类。我还有每个元素的特征向量。我不知道特征的含义,也不知道人类聚类背后的原因是什么。

我有关于哪些元素属于哪个集群的完整信息。我可以假设人类并不愚蠢,并且有一种方法可以从特征中得出聚类。

是否有一种智能方法可以对集群进行逆向工程?也就是说,我如何才能选择在大部分时间(在这个数据集上)产生相同聚类的特征和聚类算法?

到目前为止,我已经尝试了一种简单的方法——通过 python 中的 sklearn 库提供的聚类算法,并将获得的聚类与源聚类算法进行比较。这种方法不会产生好的结果。

我的下一个方法是使用特征的一些线性组合,或特征子集。再次,我的问题是,是否有比通过尽可能多的组合更智能的方法来做到这一点。

我无法摆脱这是一个标准问题的感觉,我只是错过了在 Google 上找到解决方案的正确术语。

【问题讨论】:

  • 我投票把这个问题移到stats.stackexchange.com,他们接受关于数据挖掘和机器学习的问题。一些控制问题:这种“手动”聚类算法是在单个数据集上执行的,还是您有多个使用相同原理聚类的数据集?您是否了解手动聚类背后的原理(也许人类在看到数据之前假设了固定数量的聚类,也许人类假设数据集中的某些点不属于任何聚类,也许人类在聚类期间使用了数据的视觉表示)?
  • 谢谢,我不知道在哪里发布。它最初是一个 scikit 问题,当我写它时它变得更加普遍。只有一个数据集。我知道集群背后的原理,但它如何转化为特征。一个很好的例子是:拿一组物体,一个人根据它们看起来是由什么材料(“可能是金属”)将它们聚集在一起(或者给出下面的回复,我猜他们对它们进行了分类)。现在我的特征集将是在物体中发现的分子、它们的密度、弹性等——未标记。可能存在一些不相关的特征,例如形状。

标签: python scikit-learn cluster-analysis feature-selection


【解决方案1】:

您确定它是自动完成的吗?

在我看来,您应该将此视为一个分类问题:构造一个与人类相同的分类器。

【讨论】:

  • 谢谢,我被集群困住了,以至于忽略了其他选择。我来看看分类方法。