第七章聚类分析张静(Jingzhang@ecust.edu.cn)主要内容ECUST--JingZhang2什么是聚类分析?聚类分析中的数据类型主要的聚类方法划分方法层次方法基于密度的方法基于网格的方法基于模型的方法离群点分析小结什么是聚类分析?聚类是无监督学习(unsupervisedlearning)没有预定义的类别观察式学习典型应用作为独立工具(stand-alonetool),可表征数据分布作为其他算法的预处理步骤(preprocessingstep)ECUST--JingZhang4聚类的应用场景5空间数据分析在GIS中,通过对特征空间聚类来创建主题地图。图像处理经济学(特别是市场研究)城市规划气候研究文档分类对Web日志进行聚类,从而发现相似的访问模式。离群点检测信用卡欺诈检测;监控电子商务中的犯罪活动等。6聚类作为预处理工具概括可以作为回归,PCA,分类,以及关联分析的预处理压缩图像处理:矢量量化找到K近邻局部搜索一个或少量的聚类ECUST--JingZhang什么是好的聚类方法?ECUST--JingZhang7一个好的聚类方法将会产生高质量的簇高簇内相似性:类内凝聚性低簇间相似性:类间区分性判定一个聚类方法质量好坏依赖于用于该聚类方法的相似度度量具体实现方法能否发现部分或者所有隐藏的模式数据挖掘对聚类的要求8可伸缩性处理不同类型属性的能力数值型、二元类型、分类/标称类型、序数型。发现任意形状的聚类基于欧几里德距离或曼哈顿距离,偏向于发现具有相近尺寸和密度的球状簇开发其他类型的其他度量对于决定输入参数的领域知识需求最小参数选择ECUST--JingZhang数据挖掘对聚类的要求处理噪声数据的能力离群点、空缺值、未知数据、错误数据增量聚类和对于输入纪录的顺序不敏感高维性基于约束的聚类可解释性和可用性ECUST--JingZhang9聚类方法研究的问题分割需求:单层vs.多层簇的分割:排他的vs.非排他的相似度度量:距离vs.基于密度或区域的连通性聚类空间:整个空间vs.子空间10主要内容ECUST--JingZhang11什么是聚类分析?聚类分析中的数据类型主要的聚类方法划分方法层次方法基于密度的方法基于网格的方法基于模型的方法离群点分析小结不同数据类型的距离度量区间标度变量:粗略线性标度的连续度量,如:重量,高度等MinkowskiDistance:Specialcases:Euclidean(L2-norm),Manhattan(L1-norm)1211,rrniiidXYxy1,niiidXYxy21,niiidXYxyECUST--JingZhang不同数据类型的距离度量二元变量:只有两种状态:0,1相异度计算:相异矩阵对称vs.非对称对称二元变量:两个状态具有同等价值和相同的权重。非对称二元变量:输出的状态不是同等重要的。标称变量(分类变量):二元变量的推广,可以取多个状态值相异度计算:不匹配变量的数目(或不匹配率)ECUST--JingZhang13不同数据类型的距离度量序数变量:相异度计算:处理方法同区间标度变量比例标度变量:在非线性的刻度(例如指数刻度)取正的度量值相异度计算:首先进行对数变换矢量:相异度计算:cosinemeasure混合类型变量:相异度计算:按类型分组,对每种类型的变量进行单独的聚类分析将所有类型的变量一起处理,只进行一次聚类分析14簇之间的距离Singlelink:一个簇中的对象和另一个簇中对象的最小距离,i.e.,dist(Ki,Kj)=min(tip,tjq)Completelink:一个簇中的对象和另一个簇中对象的最大距离,i.e.,dist(Ki,Kj)=max(tip,tjq)Average:一个簇中的对象和另一个簇中对象的平均距离,i.e.,dist(Ki,Kj)=avg(tip,tjq)Centroid:两个簇质心之间的距离,i.e.,dist(Ki,Kj)=dist(Ci,Cj)Medoid:两个簇中心点之间的距离,i.e.,dist(Ki,Kj)=dist(Mi,Mj)Medoid:achosen,centrallylocatedobjectintheclusterXX15一个簇的质心(Centroid),半径(Radius)和直径(Diameter)(对于数值数据集合)Centroid:the“middle”ofaclusterRadius:squarerootofaveragedistancefromanypointoftheclustertoitscentroidDiameter:squarerootofaveragemeansquareddistancebetweenallpairsofpointsintheclusterNtNiipmC)(1NmciptNimR2)(1)1(2)(11NNiqtiptNiNimD16主要内容ECUST--JingZhang17什么是聚类分析?聚类分析中的数据类型主要的聚类方法划分方法层次方法基于密度的方法基于网格的方法基于模型的方法离群点分析小结主要聚类方法的分类ECUST--JingZhang18划分算法构造各种各样的划分,并用一些标准来评估它们给定初始划分数目k,产生一个初始划分,然后采用迭代的重定位技术,直到找到一个好的划分。层次算法使用一些策略来进行数据(或对象)集的层次分解凝聚的和分裂的缺点:不能被撤销改进在每层划分中,仔细分析对象间的“联接”综合层次凝聚和迭代的重定位方法主要聚类方法的分类ECUST--JingZhang19基于密度的方法基于连续和密度函数只要临近区域的密度(对象或数据点的数目)超过某个阈值,就继续聚类基于网格的方法基于多层粒度结构把对象量化为有限数目的单元,形成一个网格结构。聚类操作在网格结构(即量化的空间)上进行。处理时间独立于数据对象数目,只与量化空间中每一维的单元数目有关。基于模型的方法为每个簇假设一个模型,寻找数据对给定模型的最佳拟合主要聚类方法的分类其他类型的聚类聚类高维数据子空间聚类方法基于频繁模式的聚类基于约束的聚类存在障碍物的空间聚类用户指定约束下的聚类半监督聚类ECUST--JingZhang20主要内容ECUST--JingZhang21什么是聚类分析?聚类分析中的数据类型主要的聚类方法划分方法层次方法基于密度的方法基于网格的方法基于模型的方法离群点分析小结划分方法:基本概念22划分方法:基于一个n个对象或元组的数据库,构建数据的k个划分,每个划分表示一个簇,k=n给定一个k,找到一个划分方法,含k个簇,并且这个划分是最优的。全局最优:需要穷举所有可能的划分启发式方法:k-means和k-medoids算法k-means:每个簇用该簇中对象的平均值来表示k-medoidsorPAM(Partitionaroundmedoids):每个簇用接近聚类中心的一个对象来表示ECUST--JingZhang22K-Means聚类方法K均值的处理流程如下:随机选择k个对象,每个对象初始地代表了一个簇的平均值或中心对剩余每个对象,根据其与各个簇中心的距离,将它赋给最近的簇。重新计算每个簇的平均值。这个过程不断重复,直到簇不再发生变化或准则函数收敛。平方误差准则P是空间中的点,mi是簇Ci的平均值kiCpiimp12||EECUST--JingZhang23K-Means聚类方法举例012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910012345678910K=2任意选择K个对象作为初始化类中心把每个对象归为最相似的中心更新簇的均值更新簇的均值重新指派重新指派24K-Means聚类方法ECUST--JingZhang25优点复杂度:O(nkt),其中n是对象的数目,k是簇的数目,t是迭代的次数.通常k,tn.相对可伸缩和高效。通常以局部最优结束。缺点只有在簇的平均值被定义的情况下才能使用,当涉及有分类属性的数据时无法处理需要事先给出k,簇的数目对噪声和离群点数据敏感不适合发现非凸形状的簇,或者大小差别很大的簇K-Means方法的变种ECUST--JingZhang26有许多k-means算法的变种,区别在于初始k个平均值的选择相异度的计算计算聚类平均值的策略处理分类数据:k-众数方法(k-modes(Huang’98))用众数代替簇的平均值采用新的相异度度量采用基于频率的方法更新簇众数混合处理分类和数值数据:k-原型方法(k-prototype)将k-均值和k-众数方法综合起来K-Means方法存在的问题?k-means算法对离群点非常敏感!因为拥有极端值的对象将在很大程度上影响数据的分布。K-Medoids:用中心点(位于簇最中心位置的对象)而不是簇中对象的平均值作为参考点。01234567891001234567891001234567891001234567891027K-Medoids聚类算法ECUST--JingZhang28在各个簇中找到最有代表性的对象,即中心点(medoids)基本策略为每个簇随意选择一个代表对象剩余的对象按照它跟代表对象的距离分配给最近的一个簇然后反复地用非代表对象替代代表对象,以改进聚类质量。方法PAM(PartitioningAroundMedoids,1987)从一个初始的集合开始,循环利用non-medoids替换medoids,看看是否能够提高各个簇的性能PAM处理小数据集合时非常有效,但是处理大数据集合时却并不很有效CLARA(Kaufmann&Rousseeuw,1990):基于抽样的PAMCLARANS(Ng&Han,1994):随机的样本PAM(PartitioningAroundMedoids)ECUST--JingZhang29PAM(PartitioningAroundMedoids,KaufmanandRousseeuw,1987)算法:随机选择k个对象作为初始的中心点Repeat指派每个剩余的对象给离它最近的中心点所代表的簇;随机地选择一个非中心点对象Oh;计算用Oh代替Oi的总代价(totalswappingcost)TCih;IfTCih0,thenOh替换Oi,形成新的k个中心点的集合;Until不发生变化k-Means与k-MedoidsECUST--JingZhang30当存在噪声或离群点数据时,k-Medoids方法比k-Means方法更健壮,因为中心点不象平均值那么容易被极端数据影响K-Medoids方法执行代价比k-Means高K-Medoids方法不具有良好的可伸缩性二者均要求指定结果簇的数目kCLARA(ClusteringLargeApplications)ECUST--JingZhang31基于抽样的方法抽取数据集合的多个样本,对每个样本应用PAM算法,返回最好的聚类结果作为输出优点能处理规模较大的数据集缺点有效性取决于样本的大小如果样本发生偏斜,基于样本的好的聚类不一定代表了整个数据集合的一个好的聚类CLARANS(ClusteringLargeApplicationbaseduponRANdomizedSearch)将采样技术同PAM相结合,随机化的“CLARA”CLARAN