单连接算法与全连接算法

这篇文章所提到的图论里面定义,参考我之前的文章http://blog.csdn.net/tyh70537/article/details/75309042

定义

这篇文章将详细介绍阈值图(threshold graph),单连接算法和全连接算法的一般步骤。
我前面已经提到过,单连接算法和全连接算法都是从一个邻近度矩阵(proximity matrix)开始。一般情况下,给定n个待聚类的对象, X={x1,x2,,xn} ,邻近度矩阵是一个 n×n 的对称阵, D=[d(i,j)] 。矩阵对角线上的元素为零,由于矩阵是对称的,我们只考虑对角线右侧的n(n-1)/2个元素。
为了简单起见,我们做出如下假定:
一:每个元素表示不同对象之间的不相似度(dissimilarity),比如d(1,2)>d(1,3)说明对象1和3之间的相似程度大于1和2的。
二:这n(n-1)/2个元素的值取1到n(n-1)/2间的整数,且没有重复值。也就是说邻近度是序数变量。后面我们也会使用包含连续变量的邻近度矩阵,其实不影响。
本文用到的邻近度矩阵如下(n=5):

D=068276015381010925100473940(1)

阈值图(threshold graph)

在介绍单连接算法和全连接算法之前,先介绍下什么是阈值图。
阈值图是一个有n个节点的无向图,每个节点代表一个对象,图中不存在环(self-loops)和多重边(multiple edges)。一个阈值图用G(v)表示,其中v表示不相似的水平(dissimilarity level)。给定一个v,如果节点i和j之间的不相似度小于v,就在i和j之间插入一条边 edge(i,j)
也就是说,

(i,j)G(v)ifandonlyifd(i,j)v(2)

以(1)中数据为例,取v=5,将得到如下阈值图:
这里写图片描述

单连接算法

step 1. 画出图G(0),此时图中只有n个节点,一条边都没有,每个对象都被划分为一个簇,即有n个簇。Set k1
step 2. 画出图G(k),如果G(k)中的最大连通子图(maximal connected subgraph)的数量少如当前簇的数量,则把G(k)中的每个最大连通子图都作为一个簇。
step 3. 如果G(k)中只剩下一个连通子图,则算法停止。否则Set kk+1 ,并返回step 2。
下面通过例子(1)的阈值图来详细说明。
这里写图片描述
首先G(0)阶段把对象划分成了5个簇。
到G(1)阶段,阈值v取1的时候,只有d(2,3)满足要求,故G(1)中只有2和3之间有边,此时G(1)中最大连接子图的数量变为4(分别是{2,3},{1},{4},{5})。因此把每个最大连接子图都划分成一个新的簇。
同理,到了G(2)阶段,对象分别被划分成3个簇。G(3)阶段,对象被划分成2个簇。
最后,G(4)阶段的时候,图中只剩下一个连通子图,所有的对象被划分成一个簇,算法结束。

聚类结果用树状图表示如下,其记录了聚类的顺序。
这里写图片描述

全连接算法

step 1. 画出图G(0),此时图中只有n个节点,一条边都没有,每个对象都被划分为一个簇,即有n个簇。Set k1
step 2. 画出图G(k),
如果当前有2个簇在图G(k)中形成了最大完全子图(maximal complete subgraph)那么就把这2个簇合并成一个簇。
step 3. 如果k=n(n-1)/2,也就是图G(k)成为了一个完全图时,算法停止。
否则,Set kk+1 ,并返回step 2。
同样的,通过阈值图来说明聚类的过程:
这里写图片描述
聚类结果树状图表示如下:
这里写图片描述
完全连接算法和单连接算法在形成簇的要求上有很大不同。单连接算法把只要是相连的点都归为一个簇,因此当整个阈值图变成连通图时,聚类就完成了。而完全连接算法对形成簇的要求更加严格,新形成的簇必须是一个最大完全子图,也就是说簇中的每个点之间都必须相连。
我们按顺序来解释完全连接算法的阈值图:
G(0): 这里和单连接算法是一样的,每个点都是一个单独的簇。每个点其实也可看作只包含一个点的最大完全子图。
G(1): 这里节点2和3是G(0)中的簇,它们此刻又构成了一个最大完全子图,故簇2和3被合并成一个新簇。
G(2): 同上,簇1和4合并成一个新簇。
G(3): 虽然2和5相连,但2,3,5并没有构成一个最大完全子图,所以G(3)阶段没有新簇产生。
G(4): 没有新簇产生,理由同上。
G(5): 现在问题就来了,2,4,5构成了一个最大完全子图,但我们并没有把它们划分成一个簇,这是为什么呢?这是因为簇 {x2,x3} 和簇 {x1,x4} 已经存在了,对象 x5 只能想办法合并到这两个已经存在的簇当中去,而不能把已经形成的簇重新拆开,这也是层次聚类算法的要求。
G(6): 这里由于同样的原因,1,2,4不能聚成一个簇。
G(7): 到这里终于有满足条件的新簇产生了,即1,4,5。
本来按照完全连接算法的要求,一直要进行到G(10)时,算法才停止,但实际上只需要进行到G(7)就行了,因为G(7)的时候只有2个簇了,后面的步骤肯定是将这两个簇合成一个簇,也就没必要进行了。同理,单连接算法在进行到G(3)的时候就已经没有悬念了。

  • 12
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
全连接神经网络(Fully Connected Neural Network)是一种常用的神经网络模型,用于解决分类问题。它由多个层次(通常包括输入层、隐藏层和输出层)组成,每个层次的神经元与下一层的所有神经元相连接。 分类算法中,全连接神经网络通常使用softmax激活函数作为输出层的激活函数,以实现多类别分类。具体的分类算法包括以下步骤: 1. 数据预处理:将输入数据进行标准化、归一化或其他预处理操作,以提高模型的训练效果。 2. 网络初始化:初始化网络的权重和偏置。 3. 前向传播:将输入数据通过网络的每一层,依次计算每层的输出。 4. 损失函数计算:根据模型的输出和真实标签,计算损失值。在多类别分类中,常用的损失函数是交叉熵损失函数。 5. 反向传播:根据损失值,通过反向传播算法计算每个权重和偏置对损失的梯度。 6. 参数更新:利用梯度下降等优化算法,更新网络的权重和偏置。 7. 重复步骤3至步骤6,直到达到指定的停止条件(如达到最大迭代次数或损失函数收敛)。 8. 预测:使用训练好的模型对未知数据进行分类预测。 这是全连接神经网络进行分类的基本算法流程,它可以通过增加网络层数、调整各层神经元数量等方式进行改进。同时,全连接神经网络也可以与其他技术结合使用,如正则化、批量归一化等,以提高模型的性能和泛化能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值