当前位置: 首页 > article >正文

层次聚类算法的研究

选题背景及研究意义

数据挖掘是从海量数据中以高度精确和高度可靠的手段挖掘和产生新的知识,这些新的知识将为决策者提供有力的科学决策依据。数据挖掘涉及多学科技术,包括数据库、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理和空间数据分析等,已在医学、电信、零售业等科学或商业领域得到了成功的应用。

 数据挖掘的效率主要依赖于挖掘的方法,而数据挖掘的方法涉及到数理统计、神经网络和人工智能等多种技术,技术含量比较高,实现难度比较大。随着数据挖掘技术的不断发展,数据挖掘方法的研究和应用受到了国内外学术界、企业界和政府部门越来越多的重视。目前,国外在数据挖掘方面的研究主要是对数据挖掘方法的进一步研究和开发应用。

聚类算法是数据挖掘中的一个重要研究课题,属于无指导的学习过程,其目标是将具有相似特征的数据划分在同一类或簇内,而将不相似的数据划分在不同的类或簇中。同一个类中的数据彼此相似,而与其它类中的数据相异。聚类算法己被广泛应用于统计学、机器学习、空间数据库、生物学以及市场营销等领域,还可以作为独立的数据挖掘工具来了解数据的分布,或者作为其他数据挖掘算法(如关联规则、分类等)的预处理步骤。聚类算法可以分为基于划分的方法、基于层次的方法、基于密度的方法、基于网格的方法和基于模型的方法。

二、国内外研究现状

国外很多计算机公司非常重视数据挖掘方法的开发应用,IBM和微软都成立了相应的研究中心。国内从事数据挖掘方法研究的人员主要在大学,也有部分在研究所或公司。所涉及的研究领域很多,一般集中于算法的研究、数据挖掘方法的实际应用以及有关数据挖掘理论方面的研究。在所有聚类算法中,层次聚类是应用最为广泛的一类,层次聚类算法又称为树聚类算法,其主要有凝聚式与分裂式两种:凝聚式层次聚类采用自底向上的聚类过程,以一定的凝聚策略逐层合并数据(类),最终形成层次聚类树;与此相反,分裂式则是一个自顶向下地构造层次聚类树的过程。

 层次聚类算法在实际应用中占主导地位。不但在各种软件包中都能找到它的身影,而且使用简单。但层次聚类算法存在高计算性以及对数据的输入顺序敏感等缺点。目前已经提出了多种层次聚类算法,比如BIRCH, CURE, Chameleon等。这些算法在减少时间复杂度,发现任意形状的聚类,消除噪音的影响等方面做出了卓有成效的工作,但并没有考虑如何为使用者提供一个可以逐层分析,由粗到细的分析方法。当使用者面对海量数据时,仍然无法清楚地了解聚类结果所代表的含义。

 BIRCH算法是一种分层聚类算法。它用聚类中心和半径来代表聚类,首先定义了聚类特征(cluster feature)的概念,然后通过动态地构造一棵类似B+树的聚类特征树来实现聚类。BIRCH算法不要求用户输入任何参数,具有一定处理噪音的能力。而且它是一种增量聚类方法,不要求所有数据一次性读入内存,所以空间复杂度很低。此外它的计算复杂度也只有O(n)。BIRCH的缺点主要是无法发现任意形状和大小的聚类。另外当数据量非常大的时候,为了使有限的内存能够容纳聚类特征树,聚类半径会比较大,从而导致聚类质量比较差。

 CURE算法也是一种分层聚类算法。不过它不是用聚类中心和半径来代表聚类,而是用固定数目具有代表性的数据点来表示一个聚类。所以,可以发现具有任意大小和形状的聚类。同时,在选择一个聚类的代表点时,通过向中心“收缩”的方式,可以排除“噪音”。CURE算法的缺点之一是要求用户提供聚类个数作为参数。另外它的空问复杂度是O(n),所以必须采用抽样技术来减少数据量。CURE算法在最坏的情况下,时间复杂度会达到O(n2logn)。如果数据的维数较低,时间复杂度可以达到O(n2)。

 Chameleon是一个在层次聚类中采用动态模型的聚类算法。在聚类过程中,它先为所有数据点构造一个K-最近邻居图,然后将此图划分为许多小的子集,再用一个凝聚的层次聚类算法通过反复地合并子类,来找到真正的结果簇。因为用具体的一簇点来代表聚类,所以可以发现任意形状和大小的聚类。同时它在聚合子集时,既考虑了互联性,又考虑了簇间的近似度,特别是簇内部的特征,来确定最相似的子簇,这样大大减少了“噪音”的影响,得到质量很高的聚类结果。但此算法的空间复杂度为O(n),计算复杂度会达到O(n2),所以面对大规模数据库,其实用性受到怀疑。

三、论文创新工作

 Chameleon算法由Karypis G在1999年提出,本文对Chameleon算法从理论上进行了分析和讨论,作为一个探索动态模型的层次聚类算法,被认为是目前较好的层次聚类算法,具有发现任意形状簇的能力,但其主要缺点如下:(1)K-最近邻居图中K值的确定需要人工进行;(2)最小二等分的选取困难;(3)相似度函数的阈值需要人工给定。龙真真等在2009年针对其缺点提出了M-Chameleon算法。

 M-Chameleon算法作为一种层次聚类算法,最主要的一个缺陷就是进行分解或合并之后,无法回溯。本文提出了一种基于动态近邻选择模型的Chameleon算法(A Chameleon Algorithm based on Dynamic Nearest Neighbors Selection Model, DNMC),有效的克服了这一缺点,并且聚类的效果有了明显的改进。

 对于高维数据, 如果它们的某一维或几维属性内部值之间相差不大, 即在该维上差异度的值很小, 那么在计算距离的过程中, 它们对最终距离的计算结果不会产生很大的影响, 即可以将其忽略掉。因此不需要在该维数据上花费时间计算,从而了减少计算次数,降低了时间复杂度。

 对于高维数据, 如果它们的某一维或几维属性内部值之间相差不大, 即在该维上差异度的值很小, 那么在计算距离的过程中, 它们对最终距离的计算结果不会产生很大的影响, 即可以将其忽略掉。因此不需要在该维数据上花费时间计算,从而了减少计算次数,降低了时间复杂度。


http://www.kler.cn/a/449084.html

相关文章:

  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • Vue2四、 scoped样式冲突,data是一个函数,组件通信-父传子-子传父-非父子
  • lodash常用函数
  • SAP抓取外部https报错SSL handshake处理方法
  • 设计模式之【观察者模式】
  • Linux 网络维护相关命令简介
  • 江苏计算机专转本 技能Mysql知识点总结(三)
  • CTF-WEB php-Session 文件利用 [第一届国城杯 n0ob_un4er 赛后学习笔记]
  • open Feign服务抽取
  • 深入了解蓝牙Profile类型与设备的对应关系
  • SpringCloud 入门(2)—— 跨服务调度
  • 详细指南:如何手动卸载 Ubuntu 20.04 中源码编译安装的 OpenCV
  • 【华为OD-E卷-最左侧冗余覆盖子串 100分(python、java、c++、js、c)】
  • 如何让企业研发设计团队低配电脑流畅做3D大装配设计?
  • 【VScode】第三方GPT编程工具-CodeMoss安装教程
  • Webrtc音频模块(四) 音频采集
  • [SWPUCTF 2022 新生赛]什锦
  • linux网络 | 序列化反序列化的概念 与 结合网络计算器深度理解
  • Ubuntu概述
  • MySQL面试学习笔记(全)
  • 指数退避算法
  • Java-10
  • 04 Django模型基础
  • 怎么提取音频保存到本地?电脑音频提取方法
  • Laya ios接入goole广告,开始接入 2
  • 【CMD常用命令】