基于划分的聚类算法

文献阅读报告

课程名称: 《模式识别》 课程编号:

题目: 基于划分的聚类算法

研究生姓名: 学 号:

论文评语:

成 绩: 任课教师:

评阅日期:

基于划分的聚类算法

2016-11-20

摘 要:

聚类分析是数据挖掘的一个重要研究分支,已经提出了许多聚类算法,划分方法是其中之一。基于

划分的聚类算法就是用统计分析的方法研究分类问题。本文介绍了聚类的定义以及聚类算法的种类,详细阐述了K均值聚类算法和K中心点聚类算法的基本原理并对他们的性能进行分析,对近年来各学者对基于划分的聚类算法的研究现状进行梳理,对其具体应用实例作简要介绍。

关键字: 数据挖掘;聚类;K 均值聚类算法;K 中心点聚类算法;K众数算法;k多层次聚类算法

Partitional clustering algorithms

Abstract: Clustering analysis is an important branch of data mining, many clustering algorithms have been proposed, the

dividing method is one of them. Based on the clustering algorithm is divided into classification problems using the method of statistical analysis. In this paper,we introduces the definition of clustering and type of clustering algorithm,the basic principle of k-means clustering algorithm and K-center clustering algorithm are expounded in detail,we also analyze their performance,the scholars in recent years the study of the clustering algorithm based on partitioning present situation has carried on the comb,make a brief introduction to its specific application instance.

Key words: Data mining;clustering;k-means clustering algorithms;k-medoids clustering algorithms;k-modes clustering algorithms ;k-prototype clustering algorithms

1. 引言

把单个的数据对象的集合划分为相类似的样本组成的多个簇或多个类的过程,这就叫聚类。在无监督的情况下,具有独立的学习能力,这就是聚类。将数据空间中的所有数据点分别划分到不同的类中,相近距离的划分到相同类,较远距离的划分到不同类,这就是聚类的目的.聚类分析常作为一种数据的预处理过程被用于许多应用当中,它是更深一步分析数据、处理数据的基础。人们通过聚类分析这一最有效的手段来认识事物、探索事物之间的内在联系,而且,关联规则等分析算法的预处理步骤也可以用它。现在,在气象分析中,在图像处理时,在模式识别领域,在食品检验过程中,都有用到它。随着现代科技水平的不断提高、网络的迅猛发展、计算机技术的不断改革和创新,大批量的数据不断涌现。怎样从这些数据中提取有意义的信息成为人们关注的问题。这对聚类分析技术来说无疑是个巨大的挑战。只有具有处理高维的数据的能力的聚类算法才能解决该问题. 研究者们开始设计各种聚类算法,于是,基于划分的聚类算法便应运而生,而且,取得了很好的效果。

[1]

2. 正文

1 聚类概述

1.1 定义

1

聚类的定义为:在已知的数据的集合中,寻找数据点集的同类的集合.其中,每一个数据集合为一个类,还确定了一个区域,区域中的对象的密度高于其他区域中的对象的密度.聚类的实质就是“把数据集合中的所有数据分成许多的类簇,其中必有一个类簇内的实体它们都是相似的,而其它不同类簇的实体它们是不相似的;一个类簇是被测试空间中的点的会聚,而且,同一个类簇的任意两个点之间的距离小于不同的类簇的任意两个点之间的距离;一个包含的密度相对较高的点集的多维空间中的连通区域可以被描述为一个类簇,这时,它们可以借助包含的密度相对较低的点集的区域与其他的区域分离开来。”

[2]

1.2 聚类算法的种类

截止目前,经典的聚类方法有基于划分的方法,也有基于层次的方法,更有基于密度的方法,还有基于网格的方法及基于模型的方法。

[3]

1.2.1划分方法(partitioning methods)

给定一个数据集D,其包含有n 个数据对象,用一个划分方法来构建数据的k 个划分, 每一个划分表示一个类,且k≤n。即它将数据对象划分为个簇,并满足以下两点要求:1)每一个组至少包含一个数据对象;2)每一个数据对象必须属于某一个组.假定要构建的划分其数目为k,划分方法就是:首先,先创建一个初始的划分,然后,再采用一种迭代的重定位的技术,通过将数据对象在划分间来回的移动来改进划分.一个好划分的准则为:同一类中的数据对象之间要尽可能的“接近”,而不同的类中的数据对象之间要尽可能的“远离”。

1.2.2层次方法(hierarchical methods)

对给定的数据对象的集合进行层次的分解就是层次的方法.依据层次分解的形成过程,该方法可分为凝聚的层次聚类和分裂的层次聚类两类. 自底向上进行的层次分解为凝聚的(agglomerative)层次聚类;自顶向下进行的层次分解为分裂的(divisive) 层次聚类. 分裂的层次聚类先把全体对象放在一个类中,再将其渐渐地划分为越来越小的类,依此进行,一直到每一个对象能够自成一类.而凝聚的层次聚类则是先将每一个对象作为一个类, 再将这些类逐渐地合并起来形成相对较大的类,依此进行,一直到所有的对象都在同一个类中方结束。

1.2.3密度方法(density-based methods)

大多数的聚类算法都是用距离来描述数据间的相似性性质的,这些方法只能发现球状的类,而在其他形状的类上,这些算法都无计可施.鉴于此,就只能用密度(密度实际就是对象或数据点的数目)将其的相似性予以取代,该方法就是基于密度的聚类算法。密度的方法的思想:一旦“领域”的密度超过某一个阈值,就将给定的簇继续的增长.该算法还能有效的去除噪声。

1.2.4网格的方法(grid-based methods)

先把对象空间量化成有限数目的单元,将其形成一个网格空间,再对该空间进行聚类,这就是网格的方法.其主要优点为处理速度快,因为它的处理速度只与量化空间中的每一维的单元数目相关,而与数据对象的数目无关.

1.2.5模型的方法(model-based methods)

基于模型的方法就是先给每一个聚类假定一个模型,再去寻找能较好的满足该模型的数据的集合。此模型也许是数据点在空间中的密度分布的函数,也许是其它.其潜在的假定为: 一系列概率的分布决定该目标数据的集合. 统计方案、神经网络方案通常是其研究的两种方向。

2

2 基于划分的聚类算法

给定一个数据集D,其包含有n个数据对象,用一个划分方法来构建数据的k个划分, 每一个划分表示一个类,且k≤n。根据D 的属性,使得同一类中的数据对象之间尽可能的“接近”,而不同的类中的数据对象之间尽可能的“远离”。

2.1 K-均值聚类算法

2.1.1K均值聚类算法[4]基本原理

随机选k个点作为初始的聚类的中心点,根据每个样本到聚类的中心之间的距离,把样本归类到相距它距离最近的聚类中心代表的类中,再计算样本均值.如若相邻的两个聚类中心无变化,调整立即结束,如若不然,该过程不断重复进行。其特点是:在每次迭代的时候,均要检查每一个样本分类,看该分类是否正确,不正确的话,就要在全部的样本中进行调整,调整好后,对聚类的中心进行修改,再进行下一次迭代;如若分类正确,聚类的中心就不再调整了,标准测度函数也就收敛了,算法也就结束了。

2.1.2K均值聚类算法步骤

输入项为:簇的数目k及包含有n个对象的数据的集合。输出项为:k个簇。具体的方法: 1)在数据的对象的集合中,任选k个对象作为初始的簇的中心; 2)依据簇中的对象的平均值,为每一个对象重新予以最相似的簇; 3)更新簇的平均值(即计算每一个簇中的对象的平均值); 4)重复2)3)两个步骤; 5)一直到不再发生变化为止。

图 1 K-means算法过程示意图

Fig 1 K-means algorithm process diagram

2.1.3K均值聚类算法性能分析

优点:该算法的运算速度非常快,而且其结构也很简洁;其类簇之间的区别也很明显;最重要的

3

是其时间复杂度为O(nkt),所以,在处理大型数据集时,它具有可伸缩性和高效性.其中,n是样本的数目,k是类簇的数目,t是迭代的次数,通常k≤n 且t≤n。缺点:该算法需要事先给定簇类的数目k;它不适合非凸形状的簇,也不适合存在大小差别很大的簇的数据的集合;其对数据集合内的噪声和离群点的敏感较高,因为此类数据也许会对均值造成一定的影响;因为其对初始中心的选择的依赖性较强,所以,产生局部的最优解发生的概率非常大。

2.2 K-中心点聚类算法

2.2.1K中心点聚类算法[5]基本原理

首先,针对每个类,先为其随机的选择一个实际样本,将其作为初始的中心点,而数据集内剩余的其他样本则依据其与中心点样本的相似度,将其分配到最相似的中心点所在的簇类内,然后,再选择新的中心点对象将原来的中心点对象替换掉,以此达到提高聚类质量(聚类质量是由数据集内的各个样本与所属簇的中心点间的平均相异度来度量的。)的目的,如此反复的选择,一直到聚类质量不再提高为止.用接近聚类中心的一个数据对象来表示K中心点聚类算法的簇,而在K均值聚类算法中,用该簇中数据对象的平均值来表示每个簇。

2.2.2最早提出的K中心点聚类算法

PAM(Partioning around Medoid)是最早提出的K 中心点聚类算法.其原理为:先为每个类任选一个代表对象,而剩下的数据对象则根据其与代表对象的距离远近而相应的加入到最近的类中,再尝试着用非代表数据对象将代表数据对替换掉,如此反复尝试,直至收敛。

[6]

图 2 对象i被对象h替换的4种情况示意图

Fig 2 diagram of 4 cases of object I replaced by object h

为了判定一个非代表对象Oh是否是当前一个代表对象Oi的好的替代,对于每一个非中心点对象

4

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4