对非常小的数据集进行聚类

机器算法验证 聚类
2022-03-16 20:06:08

我正在寻找对非常小的数据集进行聚类的方法。我见过的几乎所有方法都在谈论它们在非常大的数据集上的工作情况。

我说的是 5 个元素,20 个元素,也许是 50 个元素。特别关注20个元素。

有一些我没有看到的标准方法吗?

20 个元素几乎足够小,可以暴力破解它。似乎可以使用某种基于混合整数规划的方法。


详细说明我的特定问题

我有,我称之为“模型”,每组模型大约有 20 个元素。这些模型是我想要聚类的。我有大约 3000 组要聚类的模型,每组大约有 20 个元素。每个模型由两部分组成:一个 ID(链接到其他有用信息)和一个概率函数。该概率函数接收一些数据并告诉我,根据该模型,该数据的可能性有多大。

在使用模型集合时,我使用每个模型评估数据,然后选择给出最高概率的模型作为最适合该特定数据价格的模型。

我最初从许多模型开始,这些模型的质量或多或少是随机的,但通过单独的系统对其进行了改进,以便更好地建模特定类型的数据(他们目前最好建模的数据类型)。通常,两个(或更多)模型可能会擅长对相同的数据进行建模。所以我想使用聚类来丢弃重复的。

所以我在一个数据集上评估了所有模型,然后使用结果来确定模型之间的距离函数。

我目前正在研究措施,包括同一点的概率输出集之间的相关性,以及“替换成本”,即如果其中一个模型是最好的,那么所有数据集的总概率会下降多少而是使用了其他模型。如果当模型最好时,我可以改用模型并且不会丢失太多概率,那么通常必须非常相似(我必须通过添加转置来使其对称)。ijij

我没有(或者不想使用)关于可能的集群数量的先验数据?但是考虑到每个元素的最大聚类数是一个,使用 K-* 类型的聚类实际上并不需要太长时间来评估 K 的所有值。

我一直在使用亲和力传播和 k-meniods。现在才开始玩层次聚类。

1个回答

对于微小的数据集,层次聚类是首选方法。

通过树状图可视化,您可以直观地验证数据集群的好坏程度、是否存在异常值、集群如何嵌套以及存在多少集群。