具有不确定距离指标的分组/集群算法

时间:2019-06-14 20:31:46

标签: algorithm statistics grouping cluster-analysis

我需要一些有关如何改进聚类算法的指导。答案可能是微不足道的,或者是不可能的。我在Google上搜索了很多,但是我要么不理解我的问题和已知的聚类算法之间的类比,要么就不存在这种矛盾。我不是计算机科学家,而且我可能也会误解很多行话。

问题

为我提供了一组N元素,我需要将这些元素分为K组,其中K未知。分组基于对函数measure(group)的调用,该函数返回度量组中元素有多紧密的度量。 group代表至少两个元素的集合。更为复杂的因素是,measure仅包含两个元素时,group的结果非常不确定,并且对该函数的调用非常昂贵。

我的解决方案

获取已分配元素A的空列表。

由于measure的结果对于两个元素而言都不精确,因此要开始“播种”组,我将第一个元素x0附加到A上,然后进行迭代所有其他元素,xi。我用两点measure的组合来称呼(x0, xi),直到得到measure很小的东西,我对此充满信心。如果这永远不会发生,x0是一个单元素组,我继续。如果我能采取适当的措施,则会将xi添加到组和已分配元素A的列表中。找到该种子后,我将重新遍历所有元素,不包括A中已有的元素(我可能错过了组中的某些元素,因为measure对于两个元素不确定)。对于每个新的候选元素x,我调用measure并收集到目前为止的group,并附加x。如果x并没有“大量”增加measure中的group,则会将其添加到groupA中。我有一种方法可以精确地定义“很多”,但这是我所遇到的特定问题的详细信息。

当我完成对所有元素的迭代时,我从A中尚未存在的第一个元素开始重新开始新的组操作,总是跳过A中的元素,直到将所有元素分组为止。

这是怎么了?

对于我正在处理的特定问题,该解决方案非常强大。但是,在最坏的情况下(在2组的元素的所有组合中迭代),它是n^2。在实践中,这从来没有发生过,我的n很少超过几百,但是在某些病理情况下,情况更糟了。由于对measure的调用是如此昂贵,因此以较少的迭代来解决问题将是非常有益的。而且,我猜想,n^2解决方案从来都不是理想的……

0 个答案:

没有答案