最全的聚类知识

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

聚类分析聚类(clustering)就是将数据对象分组成为多个类或簇(cluster),在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。相异度是基于描述对象的属性值来计算的。距离是经常采用的度量方式。聚类分析源于许多研究领域,包括数据挖掘,统计学,生物学,以及机器学习。将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。在许多应用中,一个簇中的数据对象可以被作为一个整体来对待“聚类的典型应用是什么?”在商业上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用购买模式来刻画不同的客户群的特征。聚类也能用于对Web上的文档进行分类,以发现信息。作为一个数据挖掘的功能,聚类分析能作为一个独立的工具来获得数据分布的情况,观察每个簇的特点,集中对特定的某些簇作进一步的分析。此外,聚类分析可以作为其他算法(如分类等)的预处理步骤,这些算法再在生成的簇上进行处理作为统计学的一个分支,聚类分析已经被广泛地研究了许多年,主要集中在基于距离的聚类分析。基于k-means(k-平均值),k-medoids(k-中心)和其他一些方法的聚类分析工具已经被加入到许多统计分析软件包或系统中,例如S-Plus,SPSS,以及SAS。在机器学习领域,聚类是无指导学习(unsupervisedlearning)的一个例子。与分类不同,聚类和无指导学习不依赖预先定义的类和训练样本。由于这个原因,聚类是通过观察学习,而不是通过例子学习。在概念聚类(conceptualclustering)中,一组对象只有当它们可以被一个概念描述时才形成一个簇。这不同于基于几何距离来度量相似度的传统聚类。概念聚类由两个部分组成:(1)发现合适的簇;(2)形成对每个簇的描述。在这里,追求较高类内相似度和较低类间相似度的指导原则仍然适用。活跃的研究主题集中在聚类方法的可伸缩性,方法对聚类复杂形状和类型的数据的有效性,高维聚类分析技术,以及针对大的数据库中混合数值和分类数据的聚类方法。数据挖掘对聚类的典型要求如下:可伸缩性:许多聚类算法在小于200个数据对象的小数据集合上工作得很好;但是,一个大规模数据库可能包含几百万个对象,在这样的大数据集合样本上进行聚类可能会导致有偏的结果。我们需要具有高度可伸缩性的聚类算法。处理不同类型属性的能力:许多算法被设计用来聚类数值类型的数据。但是,应用可能要求聚类其他类型的数据,如二元类型(binary),分类/标称类型(categorical/nominal),序数型(ordinal)数据,或者这些数据类型的混合。发现任意形状的聚类:许多聚类算法基于欧几里得或者曼哈顿距离度量来决定聚类。基于这样的距离度量的算法趋向于发现具有相近尺度和密度的球状簇。但是,一个簇可能是任意形状的。提出能发现任意形状簇的算法是很重要的。用于决定输入参数的领域知识最小化:许多聚类算法在聚类分析中要求用户输入一定的参数,例如希望产生的簇的数目。聚类结果对于输入参数十分敏感。参数通常很难确定,特别是对于包含高维对象的数据集来说。这样不仅加重了用户的负担,也使得聚类的质量难以控制。处理“噪声”数据的能力:绝大多数现实中的数据库都包含了孤立点,缺失,或者错误的数据。一些聚类算法对于这样的数据敏感,可能导致低质量的聚类结果。对于输入记录的顺序不敏感:一些聚类算法对于输入数据的顺序是敏感的。例如,同一个数据集合,当以不同的顺序交给同一个算法时,可能生成差别很大的聚类结果。开发对数据输入顺序不敏感的算法具有重要的意义。高维度(highdimensionality):一个数据库或者数据仓库可能包含若干维或者属性。许多聚类算法擅长处理低维的数据,可能只涉及两到三维。人类的眼睛在最多三维的情况下能够很好地判断聚类的质量。在高维空间中聚类数据对象是非常有挑战性的,特别是考虑到这样的数据可能分布非常稀疏,而且高度偏斜。基于约束的聚类:现实世界的应用可能需要在各种约束条件下进行聚类。假设你的工作是在一个城市中为给定数目的自动提款机选择安放位置,为了作出决定,你可以对住宅区进行聚类,同时考虑如城市的河流和公路网,每个地区的客户要求等情况。要找到既满足特定的约束,又具有良好聚类特性的数据分组是一项具有挑战性的任务。可解释性和可用性:用户希望聚类结果是可解释的,可理解的,和可用的。也就是说,聚类可能需要和特定的语义解释和应用相联系。应用目标如何影响聚类方法的选择也是一个重要的研究课题。聚类分析中的数据类型假设要聚类的数据集合包含n个数据对象,许多基于内存的聚类算法选择如下两种有代表性的数据结构:数据矩阵(Datamatrix,或称为对象属性结构):它用p个变量(也称为属性)来表现n个对象,例如用年龄,身高,性别,种族等属性来表现对象“人”。这种数据结构是关系表的形式,或者看为n*p维(n个对象*p个属性)的矩阵。相异度矩阵(dissimilaritymatrix,或称为对象-对象结构):存储n个对象两两之间的近似性,表现形式是一个n*n维的矩阵。d(i,j)是对象i和对象j之间相异性的量化表示,通常它是一个非负的数值,当对象i和j越相似,其值越接近0;两个对象越不同,其值越大d(i,j)=d(j,i),而且d(i,i)=0数据矩阵经常被称为二模(two-mode)矩阵,而相异度矩阵被称为单模(one-mode)矩阵。这是因为前者的行和列代表不同的实体,而后者的行和列代表相同的实体。许多聚类算法以相异度矩阵为基础。如果数据是用数据矩阵的形式表现的,在使用该类算法之前要将其转化为相异度矩阵。区间标度(Interval-Scaled)变量距离度量,它通常用于计算用该类变量描述的对象的相异性。距离的度量包括欧几里得距离,曼哈顿距离,以及明考斯基距离。“什么是区间标度变量?”区间标度变量是一个线性标度的连续度量。典型的例子包括重量和高度,经度和纬度坐标,以及大气温度。选用的度量单位将直接影响聚类分析的结果。。一般而言,所用的度量单位越小,变量可能的值域就越大,这样对聚类结果的影响也越大。为了避免对度量单位选择的依赖,数据应当标准化。标准化度量值试图给所有的变量相等的权重。“怎样将一个变量的数据标准化?”为了实现度量值的标准化,一种方法是将原来的度量值转。换为无单位的值。给定一个变量f的度量值,可以进行如下的变换:1.计算平均的绝对偏差(meanabsolutedeviation)Sf:Sf=(|x1f-mf|+|x2f-mf|+…+|xnf-mf|)/n这里的x1f,…,xnf是f的n个度量值,mf是f的平均值,即mf=(|x1f+x2f+…+xnf)/n2.计算标准化的度量值,或z-score:zif=(xif–mf)/sf对象间的相异度(或相似度)是基于对象间的距离来计算的。最常用的距离度量方法是欧几里得距离;这里的i=(xi1,xi2,…,xip)和j=(xj1,xj2,…xjp)是两个p维的数据对象。另一个著名的度量方法是曼哈顿距离,其定义如下:d(I,j)=|xi1-xj1|+|xi2-xj2|+…+|xip-xjp|上面的两种距离度量方法都满足对距离函数的如下数学要求:1.d(i,j)≥0:距离是一个非负的数值。2.d(i,i)=0:一个对象与自身的距离是0。3.d(i,j)=d(j,i):距离函数具有对称性。4.d(i,j)≤d(i,h)+d(h,j):从对象I到对象j的直接距离不会大于途径任何其他对象的距离。明考斯基距离是欧几里得距离和曼哈顿距离的概化,它的定义如下:D(I,j)=(|xi1-xj1|q+|xi2-xj2|q+…+|xip-xjp|q)1/q这里的q是一个正整数。当q=1时,它表示曼哈顿距离;当a=2表示欧几里得距离。如果对每个变量根据其重要性赋予一个权重,加权的欧几里得距离。计算用二元变量描述的对象间的相似度一个二元变量只有两个状态:0或1,0表示该变量为空,1表示该变量存在“对称的二元变量和不对称的二元变量之间的区别是什么?”如果它的两个状态有相同的权重,那么该二元变量是对称的,也就是两个取值0或1没有优先权。如果假设所有的二元变量有相同的权重,我们得到一个两行两列的可能性表8.1。在表中,q是对对象i和j值都为1的变量的数目,r是在对象i中值为1,在对象j中值为0的变量的数目,s是在对象i中值为0,在对象j中值为1的变量的数目,t是在对象i和j中值都为0的变量的数目。变量的总数是p,p=q+r+s+t。基于对称二元变量的相似度称为恒定的相似度,即当一些或者全部二元变量编码改变时,计算结果不会发生变化。对恒定的相似度来说,评价两个对象i和j之间相异度的最著名的系数是简单匹配系数,其定义如下:d(I,j)=(r+s)/(q+r+s+t)如果两个状态的输出不是同样重要,那么该二元变量是不对称的。对非恒定的相似度,最著名的评价系数是Jaccard系数,在它的计算中,负匹配的数目被认为是不重要的,因此被忽略。D(I,j)=(r+s)/(q+r+s)标称型、序数型和比例标度型变量标称变量标称变量是二元变量的推广,它可以具有多于两个的状态值。例如,map_color是一个标称变量,它可能有五个值:红色,黄色,绿色,粉红色,和蓝色。假设一个标称变量的状态数目是M。这些状态可以用字母,符号,或者一组整数(如1,2,…,M)来表示。要注意这些整数只是用于数据处理,并不代表任何特定的顺序。“如何计算标称变量所描述的对象之间的相异度?”两个对象i和j之间的相异度可以用简单匹配方法来计算:d(I,j)=(p-m)/pm是匹配的数目,即对i和j取值相同的变量的数目;而p是全部变量的数目。我们可以通过赋权重来增加m的影响,或者赋给有较多状态的变量的匹配更大的权重。通过为每个状态创建一个二元变量,可以用二元变量来表示标称变量。对一个有特定状态值的对象,对应该状态值的二元变量值置为1,而其余的二元变量值置为0。序数型变量一个离散的序数型变量类似于标称变量,除了序数型变量的M个状态是以有意义的序列排序的。序数型变量对记录那些难以客观度量的主观评价是非常有用的将区间标度变量的值域划分为有限个区间,从而将其值离散化,也可以得到序数型变量。一个序数型变量的值可以映射为排序。例如,假设一个变量f有Mf个状态,这些有序的状态定义了一个序列1,…,Mf。假设f是用于描述n个对象的一组序数型变量之一,关于f的相异度计算包括如下步骤:第i个对象的f值为xif,变量f有Mf个有序的状态,对应于序列1,…,Mf。用对应的rif代替xif,rif∈{1,…,Mf}。既然每个序数型变量可以有不同数目的状态,我们经常必须将每个变量的值域映射到[0.0,1.0]上,以便每个变量都有相同的权重。这一点可以通过用zif代替rif来实现。Zif=(rif–1)/(Mf-1)比例标度型变量比例标度型变量在非线性的刻度取正的度量值,例如指数主要聚类方法的分类算法的选择取决于数据的类型,聚类的目的和应用大体上,主要的聚类算法可以划分为如下几类:划分方法(partitioningmethods):给定一个n个对象或元组的数据库,一个划分方法构建数据的k个划分,每个划分表示一个聚类,并且k=n。也就是说,它将数据划分为k个组,同时满足如下的要求:(1)每个组至少包含一个对象;(2)每个对象必须属于且只属于一个组。注意在某些模糊划分技术中第二个要求可以放宽。给定k,即要构建的划分的数目,划分方法首先创建一个初始划分。然后采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进划分。一个好的划分的一般准则是:在同一个类中的对象之间的距离尽可能小,而不同类中的对象之间的距离尽可能大。为了达到全局最优,基于划分的聚类会要求穷举所有可能的划分。实际上,绝大多数应用采用了以下两个比较流行的启发式方法:(1)k-means算法,在该算法中,每个簇用该簇中对象的平均值来表示。(2)

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功