层次聚类算法

对聚类算法有一点点入门的时候就知道,几乎所有的“平面型”聚类算法都有一个共同的弱点-难以确定类别数(聚类停止条件),而层次聚类在一定程度上解决了这个问题(它算一种比较古老比较通用的聚类算法吧)。谈到层次这个词,很容易想象到聚类的过程是线性分阶段进行的。

1. 层次聚类两种基本方法:凝聚的和分裂的

  • 凝聚的:从点作为个体簇开始,每一步合并两个最接近的簇。这里需要定义簇的邻近性概念,如图所示。

层次聚类算法

  • 分裂的:从包含所有点的某个簇开始,每一步分裂一个簇,直到仅剩下单个点簇。这种情况比较复杂,我们需要确定每一步分裂哪个簇,以及如何分裂。

层次聚类算法

2. 常用的基于凝聚的层次聚类

下面探讨两个问题:

1) 定义簇之间的邻近性(需要注意的是两个点的距离可以根据自己的需要去定义,这里说的是如何根据簇内多个点与其他点或者簇计算两个簇之间的邻近性)

源于簇的基于图的术语,有MIN、MAX、和组平均三种方法。MIN定义簇之间的邻近度为不同簇的两个最近的点之间的邻近度(图的术语表示:不同的结点子集中两个结点之间的最短边)。MAX取不同簇中两个最远的点之间的邻近度。通常我们使用单链(single link)和全链(complete link)来分别表示这两种方法。组平均定义簇邻近度为取不同簇的所用点对邻近度的平均值(平均变长)。三种方法如图所示。

层次聚类算法

当然,簇也可用质心代表,这样邻近度的定义为质心之间的距离就更加自然。还有一种方法Ward,该方法试图最小化点到其簇质心的距离的平方和。

2) 时间和空间复杂性

需要存储m2/2个邻近度,其中m是数据点的个数。因此空间复杂度为O(m2)。

需要O(m2)时间计算邻近度矩阵,之后步骤3和4涉及m-1次迭代,如果某个簇到其他所有簇的距离存放在一个有序表或堆中,则查找两个最近簇的开销可能为O(m-i+1).总时间为O(m2logm)。

3. 问题及优缺点

层次聚类的主要问题主要包括

1) 缺乏全局目标函数,使用各种标准在每一步局部地确定哪些簇应当合并,成功避开了解决困难的组合优化问题。但是这样的方法没有局部极小问题或很难选择初始点。

2) 处理不同大小簇的能力,若想平等地对待不同大小的簇,必须赋予不同簇中的点不同的权值。

3) 合并决策是不可逆的,一旦做出决策,就不能撤销了。

优点与缺点:

比较适合那些需要层次结构的应用,通常情况下,层次聚类会产生较高质量的聚类结果并可以根据邻近度阈值等相关指标确定聚类个数。然而计算量和存储代价是昂贵的,高维数据可能会出现较大问题。由于是不可逆的,对于噪声比较敏感。有些研究先使用其他聚类算法进行部分聚类,然后利用之前聚好的簇再进行层次聚类往往可以解决上述问题。

 

张晗

2015.1.28

原创文章,作者:admin,如若转载,请注明出处:https://www.isclab.org.cn/2015/01/28/%e5%b1%82%e6%ac%a1%e8%81%9a%e7%b1%bb%e7%ae%97%e6%b3%95/

(2)
adminadmin
上一篇 2015年1月28日
下一篇 2015年1月28日

相关推荐

  • 自动化漏洞挖掘初探

    摘要:本报告介绍了web漏洞挖掘中的基本概念,实战通用方案及相关思路总结,进一步详细讲解了手工挖掘中存在的痛点问题,重点阐述了前沿自动化漏洞挖掘算法原理,分析其如何弥补手工挖掘的不…

    2023年2月13日
    1.2K
  • 动态网络嵌入方法研究

    传统的网络表示一般使用高维的稀疏向量,但是局限在于难以度量节点间的相似性,而一般的静态网络嵌入方法,忽略网络的动态演化过程,因此提出了基于动态网络的嵌入方法学习。本次将基于深度自编…

    2021年6月14日
    1.1K
  • 图嵌入-GraphSAGE

    现在大多数方法都是直推式学习, 不能直接泛化到未知节点。这些方法是在一个固定的图上直接学习每个节点embedding,但是大多情况图是会演化的,当网络结构改变以及新节点的出现,直推…

    2020年7月6日
    1.4K
  • 函数级漏洞检测

    本次报告讲述漏洞检测相关基本概念,源码级漏洞检测的一般步骤,主要从关键点选取、代码切片、代码表示等几个方面讲解源码漏洞检测方法,主要针对泛化性、多类型漏洞检测问题进行研究。

    2022年10月30日
    939
  • 二进制代码反编译技术

    二进制代码反编译技术在漏洞检测、恶意代码分析等逆向工程领域中具有重要应用,显著提升了全检安全分析的效率与深度。该技术有助于高效理解和重构二进制程序,支持其修复、维护与再开发。本次报…

    2025年4月9日
    1.1K
  • 文本风格迁移

    风格迁移是将多种类型风格转换成另一风格,是自然语言处理领域的一个重要问题,表征着文本生成和风格控制技术的发展情况,在大数据时代下的隐私保护等方面起着重要作用。本文主要介绍了文本风格…

    2020年11月10日
    1.6K
  • 源代码安全补丁存在性测试

    本报告围绕“源代码安全补丁存在性测试”展开,聚焦于如何自动识别开源软件中的安全补丁,解决安全补丁与普通补丁混杂、厂商静默发布、攻击窗口缩短等问题,介绍了一种结构感知的检测方法——R…

    2025年7月21日
    742
  • 启发式参数优化算法举例

    优化问题在日常生活中比较常见,而对于数据挖掘领域优化问题则更为常见,更为普遍。任何一种算法在设计之初必然预留了一组可调的参数,以期通过参数调节来得到算法的最佳效果。因为参数优化问题…

    学术报告 2015年9月9日
    2.0K
  • 基于迁移学习的日志异常检测方法

    本报告讲述了系统日志数据异常检测的基本框架,介绍了日志解析和迁移学习的基本概念和方法。通过分析日志数据特点和现有的基于深度学习的日志异常检测方法,详细讲解了两种基于迁移学习的日志异…

    2022年4月6日
    1.5K
  • 软件漏洞注入技术

    随着计算机技术的发展,漏洞威胁问题已然日渐严峻,高效、准确的漏洞检测技术对于漏洞的发现和防护都至关重要,但目前常用的检测算法面临漏洞数据集少、信息不准确、构建成本高等问题,所以一个…

    2023年9月27日
    977