当前位置: 首页 > 工具软件 > Diana > 使用案例 >

Hierarchical Clustering-DIANA

周宸
2023-12-01

DIANA算法(DIvisive ANAlysis)算法是一种分裂式层次聚类算法,它的主要步骤步骤如下:

举例说明,假设二维空间八个元素,分布位置如下:

坐标点属性1属性2
\(P_1\)11
\(P_2\)12
\(P_3\)21
\(P_4\)22
\(P_5\)34
\(P_6\)35
\(P_7\)44
\(P_8\)45

步骤1:找出具有最大直径的集群,开始时指的就是所有集群。

步骤2:在最大直径集群中,找到每个点与其他点的平均距离:
\(P_1\)与其他点平均距离为:
\(\begin{align*}
d(P_1)&=(\sqrt{(1-1)^2+(2-1)^2}+\sqrt{(2-1)^2+(1-1)^2}+\dots+\sqrt{(4-1)^2+(5-1)^2})/7\\
&=(1+1+1.1414+3.6+4.24+4.47+5)/7\\
&=2.96
\end{align*}\)
同理:
\(d(P_2)=(1+1.414+1+2.828+3.6+3.6+4.24)/7=2.526\)
\(d(P_3)=(1+1.414+1+3.16+4.12+3.6+4.27)/7=2.68\)
\(d(P_4)=(1.414+1+1+2.24+3.16+2.828+3.6)/7=2.18\)
\(d(P_5)=2.18\)
\(d(P_6)=2.68\)
\(d(P_7)=2.526\)
\(d(P_8)=2.96\)

在上面所有的距离中,\(P_1\)与其他点的平均距离最远,放入splinter group,其他点放入old party中,那么
splinter group={\(P_1\)}
old party={\(P_2\),\(P_3\),\(P_4\),\(P_5\),\(P_6\),\(P_7\),\(P_8\)}

步骤3:找出old party中到splinter group最近的点的距离不大于到old party其他点最小距离的点,加入到splinter group中。对于old party中的每一个点依次计算:
\(P_2\)到splinter group中点\(P_1\)的距离为1,因为splinter group中只有一个点,依次\(P_2\)到splinter group中最近的点的距离为1
\(P_2\)到old party中点\(P_3\)的距离为1.1414
\(P_2\)到old party中点\(P_4\)的距离为1
\(P_2\)到old party中点\(P_5\)的距离为2.828
\(P_2\)到old party中点\(P_6\)的距离为3.6
\(P_2\)到old party中点\(P_7\)的距离为3.6
\(P_2\)到old party中点\(P_8\)的距离为4.24
因此\(P_2\)到old party中最近的点(\(P_4\))的距离是1,满足到splinter group最近的点距离不大于到old party其他点最小距离的条件,因此将\(P_2\)加入splinter group中。
此时splinter group={\(P_1\),\(P_2\)}
old party={\(P_3\),\(P_4\),\(P_5\),\(P_6\),\(P_7\),\(P_8\)}

步骤4:重复步骤3,直到不存在这样的点结束,此时已经将最大的集群分成两个。如果此时集群的数量未达到终止条件,则继续重复步骤2,选择一个最大直径的集群进行分裂。

相关阅读

相关文章

相关问答