一. 什么是聚类
二. 聚类步骤
三. 聚类算法有哪些
1 层次聚类算法
2 划分聚类算法
3 基于密度的聚类算法
4 基于网格的聚类算法
5 基于模型的聚类算法
物以类聚,人以群分,聚类分析是一种重要的多变量统计方法。 聚类分析最早起源于分类学,最初,人们依靠经验将一类 事件的集合分为若干子集。随着科技的发展,人们将数学工具引入分类学,聚类算法便被细化归入数值分类学领域。后来,信息技术快速发展,新数据的出现呈井喷趋势,其结构的复杂性和内容的多元化又为聚类提出了新的要求,于是多元分析技术被引入数值分析学,形成了聚类分析学。聚类与分类不同,在分类模型中,存在样本数据,这些数据的类标号是已知的,分类的目的是从训练样本集中提取出分类的规则,用于对其他标号未知的对象进行类标识。在聚类中,预先不知道目标数据的有关类的信息,需要以某种度量为标准将所有的数据对象划分到各个簇中。因此,聚类分析又称为无监督的学习。
聚类(clustering)就是将具体或抽象对象的集合分组成由相似对象组成的为多个类或簇的过程。由聚类生成的簇是一组数据对象的集合,簇必须同时满足以下两个条件:每个簇至少包含一个数据对象;每个数据对象必须属于且唯一地属于一个簇。
在许多应用中,一簇中 的数据对象可以作为一个整体来对待。
由于聚类在对数据对象进行划分过程中,倾向于数据的自然划分,因此,聚类分析是指用数学的方法来研究与处理给定对象的分类,主要是从数据集中寻找数据间的相似性,并以此对数据进行分类,使得同一个簇中的数据对象尽可能相似,不同簇中的数据对象尽可能相异,从而发现数据中隐含的、有用的信息。其中聚类算法常见的有基于层次方法、基于划分方法,基于密度及网格等方法。
层次聚类算法的指导思想是对给定待聚类数据集合进行层次化分解。此算法又称为数据类算法,此算法根据一定 的链接规则将数据以层次架构分裂或聚合,最终形成聚类结果。
从算法的选择上看,层次聚类分为自顶而下的分裂聚类和自下而上的聚合聚类。
分裂聚类初始将所有待聚类项看成同一类,然后找出其中与该类中其他项最不相似的类分裂出去形成两类。如此反复执行,直到所有项自成类。
聚合聚类初始将所有待聚类项都视为独立的一类, 通过连接规则,包括单连接、全连接,类间平均连接,以及采用欧氏距离作为相似度计算的算法,将相似度最高的两个类合并成一个类。如此反复执行,直到所有项并入同一个类。
层次聚类算法中的典型代表算法,BIRCH( Balanced Iterative Reducing andClustering Using Hierarchies,利用层次方法的平衡迭代规约和聚类)算法的核心是采用了个三元组的聚类特征树汇总了 一个簇的有关信息,从而使一个簇的表示可以用对应的聚类特征,而不必用具体的组点表示,通过构造分支因子B和簇直径阀值T来进行增量和动态聚类。
BIRCH算法引入了两个重要概念:聚类特征(Clustering Featurer CF)和聚类特征树(Clustering Feature Tree CF树),它们用于概括聚类描述,可辅助聚类算法在大型数据库中取得更快的速度和可伸缩性。
一. 回到文首划分法属于硬聚类, 指导思想是将给定的数据集初始分裂为K个簇,每个簇至小包含二条数据记录,然后通过反复迭代至每个簇不再改变即得出聚类结果划分聚类在初始的一步中即将数据分成给定个数个簇。在算法过程中还需使用准则函数对划分结果进行判断,易产生最优聚类结果。
K-Medoids算法先为每个簇随意选择一个代表对象,并将剩余的对象根据其与代表对象的距离分配给最近的一个簇。然后反复用非代表对象来替代代表对象,以改进聚类的质量。K-means 算法对噪声点和孤立点很敏感,K-Medoids 很好地解决了这一问题,该算法不采用簇中对象的平均值作为参照点,而是选用簇中位置最靠近中心的对象,即中心点。这样,划分方法仍然是基于最小化所有对象与其对应的参照点之间的相异度之和的原则来执行。
K-means 算法也称作K-平均值算法或者K均值算法,是一种得到广泛使用的聚类分析算法。该算法于1967年由MacQueen 首次提出,得到了广泛应用。这种算法通过迭代不断移动个聚簇中心和簇类成员,直到得到理想的结果。通过K均值算法得到的聚簇结果,簇内项相似度很高,簇间项相似度很低,具有较好的局部最优特性,但并非是全局最优解。此外,K均值只能定义在数值类属性值上,无法处理其他类型的数据。针对于无法产生全局最优解问题,算法的研究者们一部分倾向于通过优化初始簇的选择算法和均值计算改善算法性能,另部分则允许簇分裂与合并, 来调整簇间关系。
K-means算法是解决聚类问题的一种经典算法,简单快速,对于处理大数据集,该算法是相对可伸缩的和高效的,当结果簇是密集的,而簇之间区别明显时,它的效果较好:算法复杂度是0(n×k×t),其中,n是数据对象的个数,k是簇的个数,t是迭代的次数,通常,k《n,且1《n;K-means 算法的主要缺点在于算法通常终止于局部最优解,只有当簇均值有定义的情况下才能使用,这可能不适用于某些应用,例如,涉及有分类属性的数据:必须事先给定要生成的簇的数目;对噪声和孤立点数据敏感,少量的该类数据能够对平均值产生极大的影响;不适合发现非凸面形状的簇,或者大小差别很大的簇。
一. 回到文首基于网格的聚类算法是采用一个多分辨率的网格数据结构,即将空间量化为有限数目的单元,这些单元形成了网格结构,所有的聚类操作都在网格上进行。基于网格的聚类从对数据空间划分的角度出发,利用属性空间的多维网格数据结构,将空间划分为有限数目的单元,以构成一个可以进行聚类分析的网格结构。这样的处理使得算法处理速度很快,处理工作量与数据项个数无关,而与划分的网格个数有关。
STING (STatistical INformation Grid,统计信息网格)算法将空间区域划分为矩形单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构一高层的每个单元被划分为多个低一层的单元。
WaveCluster (Clustering using wavelet transformation,采用小波变换聚类)是一种多分辨率的聚类算法,它先通过在数据空间上加一个多维网格结构来汇总数据,然后采用一种小波变换来变换原特征空间,在变换后的空间中找到密集区域。
一. 回到文首基于模型的聚类算法是为每一个聚类假定了一个模型,寻找数据对给定模型的最佳拟合。它可能通过构建反映数据点空间分布的密度函数来定位聚类,也可能基于标准的统计数字决定聚类数目,考虑“噪声”数据或孤立点,从而产生健壮的聚类方法。该方法试图优化给定的数据和某些数学模型之间的适应性。这样的方法常基于这样的假设:数据是根据潜在的概率分布生成的。
基于模型的聚类方法主要有两类:统计学方法(EM和COBWEB算法)和神经网络方法(SOM算法)。
(1)统计学方法
概念聚类是机器学习中的一种聚类方法, 给出一组未标记的数据对象, 它产生一个分类模式。与传统聚类不同,概念聚类除了确定相似对象的分组外,还为每组对象发现了特征描述,即每组对象代表了一个概念或类。
概念聚类过程主要有两个步骤:首先,完成聚类:其次,进行特征描述。在这里,聚类质量不再只是单个对象的函数,而且还包含了其他因素,如所获特征描述的普遍性和简单性。
(2)神经网络方法
神经网络方法将每个簇描述成一个模型。模型作为聚类的一个"原型”,不一定对应一个特定的数据实例或对象。根据某些距离函数,新的对象可以被分配给模型与其最相似的簇。被分配给一个簇的对象的属性可以根据该簇的模型的属性来预测。
神经网络聚类的两种方法:竞争学习方法与自组织特征图映射方法,它们主要是通过若干单元对当前对象的竞争来完成。神经网络聚类方法存在较长处理时间和复杂数据中复杂关系问题,还不适合处理大数据库。
实际应用中的聚类算法,往往是上述聚类算法中多种算法的整合。
一. 回到文首