Hierarchical Clustering

在数据挖掘(data mining)和统计学(statistics)中,层次聚类(Hierarchical clustering)是聚类分析的一种方法。层次化聚类的策略通常分为两种:
凝聚法(Agglomerative):这是一种自底向上的方式,开始时把每一个元素当作一个单个的簇,在沿着层次结构向上移动过程中,合并成对的簇。
分裂法(Divisive):这是一种自上向下的方式,开始时将所有所有元素当成一个簇,在沿着层次结构向下移动过程中,递归的进行分裂操作。
通常,合并和分裂在决定过程中都是用贪心的方式。层次化聚类的结果通常表现为系统树状图(dendrogram)的形式。

在大多数的层次聚类方法中,为了决定哪些簇应该被合并(凝聚法)或者两个簇应该被分裂(分裂法),我们需要来度量观察集合之间的不相似度,这可以通过选择一个合适的度量标准和链接标准来实现。

度量标准(Metric)

选择一个合适的度量标准将会影响集群的形状。一些元素可能会在某个度量标准下距离很近,在另一个度量标准下距离会很远,例如在二维空间里,(1,0)和(0,0)两个点在通常标准下它们的距离总是1,但是(1,1)和(0,0)两个点它们的曼哈顿距离(Manhattan distance)是2,但是欧几里得距离(Euclidean distance)是\(\sqrt {2}\),最大距离(Maximum distance)是1。

下面是一些在层次聚类中通常使用的度量标准:

名称公式
欧几里得距离(Euclidean distance\(\|a-b\|_{2}=\sqrt{\sum_{i}(a_{i}-b_{i})^{2}}\)
平方欧几里得距离(Squared Euclidean distance\(\|a-b\|_{2}=\sum_{i}(a-b)^{2}\)
曼哈顿距离(Manhattan distance\(\|a-b\|_{1}=\sum_{i}\left\vert a_{i}-b_{i}\right\vert\)
最大距离(Maximum distance\(\|a-b\|_{\infty}=\max_{i}\left\vert a_{i}-b_{i}\right\vert\)

对于一些文本或非数字类型的数据,通常使用海明距离(Hamming distance)或者编辑距离(Edit distance or Levenshtein distance

连接标准(Linkage criteria)

连接标准根据观察对象间成对的距离确定观察组之间的距离。两个观察对象A和B之间的常用的连接标准如下:

名称公式
全连接聚类(最大连接)/ Maximum or complete-linkage clustering\(\max\,\{\,d(a,b):a \in A,\,b \in B\,\}\)
单连接聚类(最小连接)/ Minimum or single-linkage clustering\(\min\,\{\,d(a,b):a\in A,\,b\in B\,\}\)
平均连接聚类 /Mean or average-linkage clustering or UPGMA\(\frac{1}{\vert A \vert\vert B \vert}\sum_{a \in A}\sum_{b \in B}d(a,b)\)
质心连接聚类 /Centroid-linkage clustering or UPGMC\(\|c_{t}-c_{s}\|\) 这里\(c_{t}\)和\(c_{s}\)是各自集合的质心

上面公式里的d函数就是前面介绍的度量标准(Metric),采用哪种距离计算函数。

凝聚聚类实例

假设需要聚类一些数据,采用欧几里得距离(Euclidean distance)作为距离计算函数。

用给定的高度来切割树将会得到给定精度的分区聚类

假设聚类产生的系统树状图如下:

如图若在系统树状图的第二行后面切割将会产生四个集群{a},{b,c},{d,e},{f}。

同理,如果在系统树状图的第三行后面切割则会产生三个集群{a},{b,c},{d,e,f}。这是一个更粗糙的聚类,但是集群的数量会更少,同时集群的大小会变大。

凝聚聚类是采用逐步合并集群的方式从单个的元素生成层次结构,在上面的例子中,有六个元素{a},{b},{c},{d},{e},{f},第一步是决定哪两个元素将被合并到一个集群。通常,我们依据距离选择两个距离最近的元素来合并。

一个可选方案是这个阶段构建一个距离矩阵,矩阵的第i行第j列的数字代表第i个元素与第j个元素的距离。然后,随着聚类的进展,在合并集群和更新距离同时也合并矩阵的行与列,这是凝聚聚类常用的方式,它具有缓存集群之间的距离的优点。

假设我们已经合并了两个最近的集群{b}和{c}得到一个新的集群{b,c},现在集群为{a},{b,c},{e},{f},如果要进一步合并他们,我们需要计算{a}和{b,c}的距离,因此这里需要定义两个集群间的距离,这就是我们之前提到的连接标准。

当集群的数量足够的少的时候,可以决定来停止聚类。另外一些连接标准可以保证凝聚之后的集群间的距离比凝聚之前更远,当集群分离太远而不能进行合并时可以选择停止聚类。

以下是一些经典的凝聚聚类算法:
  BIRCH算法
  ROCK算法
  CHAMELEON算法

分裂聚类

分裂聚类算法开始时将所有元素当做一个集群。一个大的集群会被逐步分裂知道所有元素都分开,因为分裂一个大小为n的集群会存在\(2^n\)种方式,因此这里需要启发式分裂方法。

以下是一些经典的分裂聚类算法:
  DIANA算法
  Bisecting K-Means算法

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值