【问题标题】:Grouping or Clustering Algorithm分组或聚类算法
【发布时间】:2014-11-10 11:44:30
【问题描述】:

数据库中的类似问题似乎比我的示例复杂得多。我想在一条线上聚集 100 个点。组数无关;点的接近程度更重要。

处理这个分组问题的术语、方法或算法是什么? K-means、汉明距离、层次凝聚、团还是完全连锁??

为了澄清起见,我已将两个示例减少到最低限度:

简单示例:
设置 A = {600, 610, 620, 630},其元素之间的差异集是 diff_A = {10, 20, 30, 10, 20, 10}。然后我可以按如下方式分组:{10、10、10}、{20、20} 和 {30}。完成。

有问题的例子:
设置 B = {600, 609, 619, 630},差异集是 diff_B = {9, 10, 11, 19, 21, 30}。我尝试以 1 的容差进行分组,即 1(或更小)的差异“足够相似”可以进行分组,但我遇到了一个悖论:{9, 10} AND/OR {10, 11}, {19} 、{21} 和 {30}。

问题:
9 和 10 足够接近,10 和 11 足够接近,但 9 和 11 不是,那么我应该如何处理这些重叠的组?也许这个小例子是对称的,所以无法解决?

【问题讨论】:

标签: set grouping cluster-analysis similarity difference


【解决方案1】:

您为什么要处理成对的差异?考虑值 1、2、101、102、201、202。成对差异为 1,100,101,200,201,99,100,199,200,1,100,101,99,100,1

~200 的值没有任何信息。中间有一个不同的“集群”。您不应该将它们用于您的分析。

取而代之的是,拿起一本统计教科书并查找Kernel Density Estimation。不必费心寻找聚类 - 这些方法通常是为 multivariate 情况设计的。您的数据是一维的。它可以被排序(它可能已经被排序),并且可以利用它来获得更好的结果。

对于此类数据的密度估计存在完善的启发式方法,您可以将数据拆分到局部最小密度(或简单地以低密度阈值)。这要简单得多,但稳健可靠。您不需要为 k-means 设置诸如 k 之类的参数。在某些情况下,k-means 是一个不错的选择——它起源于信号检测,已知有 k=10 个不同的信号频率。今天,它主要用于多维数据。

另见:

【讨论】:

    猜你喜欢
    • 2011-10-22
    • 2011-12-29
    • 2012-03-30
    • 2015-07-05
    • 2020-06-18
    • 2018-08-22
    • 2022-09-27
    • 2013-11-26
    • 2018-07-24
    相关资源
    最近更新 更多