层次聚类算法

层次聚类的基本概念
 层次聚类方法是古老而且常用的聚类方法。层次聚类方法又有两种产生层次聚类的基本方法。
凝聚的:该方法是自底向上的方法,初始每个对象看做一个簇,每一步合并最相近的簇,最终形成一个簇。
分类的:该方法是自顶向下的方法,从包含的所有点的簇开始,每一步分裂一个簇,知道仅剩下单点的簇。


2 簇之间的邻近性
在凝聚的层次聚类方法中,需要定义簇之间的相近性。有许多凝聚层次的聚类技术,本文中介绍单链、全链、组平均。

单链:
该方法中两个簇的邻近度定义为两个不同簇中任意两点之间的最短距离。单链技术擅长处理非椭圆形的簇,但是对噪音和离群点很敏感。
两个簇之间的相似度计算公式为:

dist({m1,m2},{m3,m4})=min(dist(m1,m3),dist(m1,m4),dist(m2,m3),dist(m2,m4))


全链:
该方法中两个簇的邻近度定义为两个不同簇中任意两点之间的最长距离。单链技术擅长处理圆形的簇,但是对噪音和离群点不太敏感。
两个簇之间的相似度计算公式为:
dist({m1,m2},{m3,m4})=max(dist(m1,m3),dist(m1,m4),dist(m2,m3),dist(m2,m4))

组平均:
该方法中两个簇的邻近度定义为两个不同簇中任意两点之间的平均距离。该方法是位于单链和全链之间的这种方法。
两个簇之间的相似度计算公式为:

dist({m1,m2},{m3,m4})=(dist(m1,m3)+dist(m1,m4)+dist(m2,m3)+dist(m2,m4))/4

AGNES算法

       AGNES(Agglomerative Nesting) 是凝聚的层次聚类算法,如果簇C1中的一个对象和簇C2中的一个对象之间的距离是所有属于不同簇的对象间欧式距离中最小的,C1和C2可能被合并。这是一种单连接方法,其每个簇可以被簇中的所有对象代表,两个簇之间的相似度由这两个簇中距离最近的数据点对的相似度来确定。

       算法描述:

              输入:包含n个对象的数据库,终止条件簇的数目k

              输出:k个簇

(1)       将每个对象当成一个初始簇

(2)       Repeat

(3)                根据两个簇中最近的数据点找到最近的两个簇

(4)                合并两个簇,生成新的簇的集合

(5)       Until达到定义的簇的数目

       算法性能:

(1)       简单,但遇到合并点选择困难的情况。

(2)       一旦一组对象被合并,不能撤销

(3)       算法的复杂度为O(n的平方),不适合大数据集计算

DIANA算法

       DIANA(Divisive Analysis)算法属于分裂的层次聚类,首先将所有的对象初始化到一个簇中,然后根据一些原则(比如最邻近的最大欧式距离),将该簇分类。直到到达用户指定的簇数目或者两个簇之间的距离超过了某个阈值。

       DIANA用到如下两个定义:

(1)       簇的直径:在一个簇中的任意两个数据点都有一个欧氏距离,这些距离中的最大值是簇的直径

(2)       平均相异度(平均距离):

                    

       算法描述:

              输入:包含n个对象的数据库,终止条件簇的数目k

              输出:k个簇,达到终止条件规定簇数目

(1)       将所有对象整个当成一个初始簇

(2)       For ( i=1;i!=k;i++) Do Begin

(3)         在所有簇中挑选出具有最大直径的簇;

(4)           找出所挑出簇里与其他点平均相异度最大的一个点放入splinter group,剩余的放入old party中。

(5)           Repeat

(6)             在old party里找出到splinter group中点的最近距离不大于old party中点的最近距离的点,并将该点加入splinter group

(7)           Until 没有新的old party的点被分配给splinter group;

(8)       Splinter group 和old party为被选中的簇分裂成的两个簇,与其他簇一起组成新的簇集合

(9)       END

       算法性能:

              缺点是已做的分裂操作不能撤销,类之间不能交换对象。如果在某步没有选择好分裂点,可能会导致低质量的聚类结果。大数据集不太适用。

缺点:

传统的层次聚类算法的效率比较低 O(tn2 ) t: 迭代次数 n: 样本点数,最明显的一个缺点是不具有再分配能力,即如果样本点 A 在某次迭代过程中已经划分给类簇 C1 ,那么在后面的迭代过程中 A 将永远属于类簇 C1 ,这将影响聚类结果的准确性。


 其他算法

       层次聚类方法比较简单,但是经常遇到的一个问题,就是在合并或分裂点选择困难的问题。一个有希望的改进方向是将层级聚类和其他聚类技术进行集成,形成多阶段聚类。

(1)       BIRCH算法

       BIRCH(利用层次方法的平衡迭代规约和聚类)是一个总和的层次聚类方法,

(2)       CURE算法


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
层次聚类算法的理论基础包括以下几个方面的内容: 1. 自底向上和自顶向下的层次分解:层次聚类算法可以根据层次分解的顺序分为自底向上和自顶向下两种方法。自底向上方法从每个个体开始,逐步合并相似的个体形成一个大的类。自顶向下方法则从一个包含所有个体的大类开始,逐步将其分解为较小的类,直到达到所需的类数。 2. Linkage方法:在层次聚类算法中,需要根据Linkage方法来判断个体或类之间的相似度。常用的Linkage方法包括最短距离法、最长距离法、中间距离法和类平均法等。其中,类平均法被认为是最常用和最好用的方法,因为它具有良好的单调性并且在空间扩张或浓缩程度上适中。 3. 混合数据类层次聚类算法:除了处理数值数据外,层次聚类算法还可以处理字符数据和混合数据。通过定义新的个体间不可区分度、类间不可区分度和聚类结果的综合近似精度等概念,可以使用新的混合数据类层次聚类算法处理这些数据类。这个算法的处理能力更加全面,可以应对更多类的数据。 4. 与其他聚类方法的结合:为了弥补层次聚类算法在分解和合并方面的不足,常常需要与其他聚类方法相结合,如循环定位。这种结合可以进一步提高聚类的准确性和效果。 综上所述,层次聚类算法的理论基础包括自底向上和自顶向下的层次分解、Linkage方法、混合数据类层次聚类算法以及与其他聚类方法的结合。这些理论基础为层次聚类算法的应用提供了指导和支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值