Algorithm 用距离矩阵聚类对象

Algorithm 用距离矩阵聚类对象,algorithm,Algorithm,假设有几个物体:o1,o2,o3 还有一个距离/相异矩阵D,它包含了每对对象的距离 e、 g.Dij是oi和oj之间的距离/差异 如何将这些对象分组,以便: 每组中每对对象之间的距离小于预定义的阈值。以下是我要做的: 当且仅当距离不超过阈值时,形成两点相连的图形 在图中找到最大的点组,这样,对于每个组,每个组成员相对于每个其他组成员都有一条边 这是第(2)步——是的,是NP完全的 以下是您可以做的: 按第二种算法CLINK的成本为O(N²)的点进行聚类 当形成的簇之间的距离超过阈值时停止该算法,

假设有几个物体:o1,o2,o3

还有一个距离/相异矩阵D,它包含了每对对象的距离

e、 g.Dij是oi和oj之间的距离/差异

如何将这些对象分组,以便:


每组中每对对象之间的距离小于预定义的阈值。

以下是我要做的:

  • 当且仅当距离不超过阈值时,形成两点相连的图形

  • 在图中找到最大的点组,这样,对于每个组,每个组成员相对于每个其他组成员都有一条边

  • 这是第(2)步——是的,是NP完全的

    以下是您可以做的:

  • 按第二种算法CLINK的成本为O(N²)的点进行聚类

  • 当形成的簇之间的距离超过阈值时停止该算法,或者沿着树向下走,使簇成为边缘高于阈值且低于阈值的子树

  • 对于完全链接聚类,两个簇之间的距离是任意两个点之间的最大距离,每个簇一个,因此,如果以这种方式在距离d处连接两个簇以形成合并簇,则合并簇中的每对点之间的距离必须最大为d

    因为我假设我并没有在时间O(N²)内解决一个NP完全问题(这意味着p=NP,证明/反驳它),第二种方法不一定能像第一种方法那样提供整洁的聚类,但我还没有充分考虑到这一点,因此无法确切地知道取舍是什么。

    以下是我的方法:

  • 给定一个图G,用
    距离(a,b)
    对任意两个顶点进行聚类,这是一个初始解\状态

  • 通过进行最佳合并来增强\优化此解决方案

  • 这种方法不是最优的,但它是完整的,并且具有较低的时间复杂度

    Time = T(Step 1) + T(Step 2)
    
    T(Step 1) ~ V + V/2 + V/4 + .. + 1 = 2V = O(V)
    
    T(Step 2) ~ 1/c V^2 = O(V^2)
    
    Time ~ 2V + 1/c V^2 = O(V) + O((^2) = O(V^2)
    

    假设三角形不等式成立(即,o1,o2,…是度量空间(O,d)的元素),则应起作用

    树冠聚类的逻辑如下:

  • 从初始集合o中拾取一个随机对象o
  • 为o创建一个新的树冠Co,并将所有对象i s.t.d(o,i)
  • 从O上移除所有物体j,s.t.d(O,j)
  • 重复此操作,直到O为空

  • T1和T2是两个阈值,其中T2oi
    oj
    ,在一个以
    ol
    为中心的集群中:
    d(oi,oj)你知道组的数量吗?@adrianN我们可以假设组的数量。顺便说一句,根据我的调查,组/簇的数量是许多聚类算法的一个很大的假设/障碍。簇是否会重叠?@vefthym否,不应该重叠。我认为与其只找到一个团,不如找到最小的团覆盖率。不幸的是,这并不容易。请澄清什么是V,什么是c,什么是最佳合并,以获得更完整、更容易理解的答案。@vefthym
    V
    是顶点数,
    c
    是常数,分析是理论性的,而
    最优合并
    是一系列合并,它们可以使集群的总体数量最小化