第第 9 9 章章聚类分析聚类分析第第 9 9 章章9.1 什么是聚类分析?9.2 聚类分析中的数据类型9.3 基于划分的聚类方法9.4 基于层次的聚类方法9.5 基于密度的聚类方法3学习目的学习目的u 理解聚类与分类数据挖掘的区别u 掌握聚类的常用方法9.1 什么是聚类类分析聚类(Clustering):u聚类是一个将数据集划分为若干组(class)或类(cluster)的过程,并使得同一个组内的数据对象具有较高的相似度; 而不同组中的数据对象是不相似的u 相似或不相似是基于数据描述属性的取值来确定的,通常利用各数据对象间的距离来进行表示u聚类分析尤其适合用来探讨样本间的相互关联关系从而对 一个样本结构做一个初步的评价示 例表中给出9个顾客的购买信息,包括购买的商品的数量及 价格,根据此两个特征量,将顾客聚类成3类(购买大量的高价产品;购买少量的高价产品;购买少量的低价产品)示 例聚类是一个非常困难的事情,因为在一个n维样本空间中,数据 可以以不同的形状和大小揭示类如在二维欧几里得空间中,上面数据可以分类三个类也可以分 为四个类,类的数量的任意性是聚类过程中的主要问题。
9.1 什么是聚类类分析聚类与分类的区别:u聚类是一 种无(教师)监督的学习方法与分类不同,其 不依赖于事先确定的数据类别,以及标有数据类别的学习训 练样本集合u 因此,聚类是观察式学习,而不是示例式学习9.1 什么是聚类类分析聚类分析的应用:u市场分析:帮助市场分析人员从客户基本库中发现不同的客户 群,并用购买模式刻画不同的客户群的特征;u万维网:对WEB日志的数据进行聚类,以发现相同的用户访问 模式;u图像处理;u模式识别;u孤立点检测等9.1 什么是聚类类分析什么是好的聚类:u一个好的聚类方法将产生以下的高聚类:Ø 最大化类内的相似性;Ø 最小化类间的相似性u聚类结果的质量依靠所使用度量的相似性和它的执行u聚类方法的质量也可以用它发现一些或所有隐含模式的能力 来度量9.2 聚类类分析中的数据类类型u基本的数据结构;u区间标度变量;u二元变量;u符号型、顺序型和比例数值型变量;u混合数据类型1. 基本的数据结构?12基本的数据结构基本的数据结构许多基于内存的聚类算法选择如下两种具有代表性的数据结构:(1)数据矩阵;(2)相异度矩阵13((1 1)数据矩阵)数据矩阵数据矩阵:是一个对象—属性结构,由n个对象组成,如:人;每个对象利用p个属性加以描述,如:年龄、身高、体重等。
数据矩阵采用关系表形式或n*p矩阵来表示: 14((2 2)相异度矩阵)相异度矩阵相异度矩阵(差异矩阵):是一个对象—对象结构,存放n个对象两两之间的近似性(差异性),采用n*n的矩阵形式表示: 15((2 2)相异度矩阵)相异度矩阵相异度矩阵(差异矩阵): 所以,矩阵呈现出上三角或下三角的形式16注意:注意:u数据矩阵通常称为双模(two-mode)矩阵:行和列分布表示不同的实体;u相异度矩阵常被称为单模(one-mode)矩阵:行和列表示同一实体u许多聚类算法都是以相异度矩阵为基础计算的,所以如果数据是以数据矩阵的形式给出的,则需要首先转换为相异度矩阵,才可以利用聚类算法来处理2. 区间标度变量?18什么是区间标度变量什么是区间标度变量区间标度变量(间隔数值变量):Ø 基本呈直线比例的连续变量,如:重量、高度和温度等为什么标准化?Ø 通常,选用的度量单位将直接影响聚类分析的结果,如:将高度的度量单位由“米”变为“英尺”,或将重量的单位由“千克”变为“英镑”,可能会产生非常不同的聚类结构Ø 一般,度量单位越小,变量可能的值域越大,对聚类结果的影响也越大因此,为避免对度量单位选择的依赖,数据应当标准化。
19度量值的标准化度量值的标准化为了实现标准化,一种方法是将初始测量值转换为无单位变量给定一个属性变量f,可用如下公式对其进行标准化:(1)计算平均的绝对偏差其中x1f, x2f,…,xnf是变量f的n个测量值;mf为变量f的 均值,即:(2)计算标准化测量(z-score):20度量值的标准化度量值的标准化21度量值的标准化度量值的标准化22度量值的标准化度量值的标准化3. 二元变量?24什么是二元变量什么是二元变量二元变量(二值变量):Ø 一个二元变量只有两个状态:0或者1其中0代表变量所表示的状态不存在;1则代表相应的状态存在Ø 如:给定变量smoker,用以描述一个病人是否吸烟的情况,如用smoker为1表示病人吸烟;若smoker为0表示病人不吸烟25二元变量的相异度计算二元变量的相异度计算差异矩阵法:如果假设所有的二元变量有相同的权重,则可以得到一个两行两列(2*2)的条件表 26二元变量的相异度计算二元变量的相异度计算其中:Ø q表示在对象i和对象j中均取1的二值变量个数;Ø r表示在对象i取1但对象j中取0的二值变量个数;Ø s表示在对象i中取0而在对象j中取1的二值变量个数;Ø t则表示在对象i和对象j中均取0的二值变量个数。
Ø 二值变量的总数为p,则:p=q+r+s+t27对称?不对称?对称?不对称?Ø 如果一个二值变量取0或1所表示的内容同等价值,且有相同的权重,则该二元变量是对称的如,属性“性别”,有两个值“女性”和“男性”,两个取值都没有优先权 Ø 基于对称二元变量的相似度,称为恒定的相似度Ø 对恒定相似度而言,评价量对象i和j间相异度的最著名的系数是简单匹配系数: 28对称?不对称?对称?不对称?Ø 如果一个二值变量的两个取值的重要性不同等重要,则该二元变量就是不对称的如一个疾病disease的测试结果positive或negative,显然这两个测试结果的重要性是不一样的:Ø 通常将比较重要的输出结果,编码为1;而将另一结果编码为0.Ø 给定一个二元变量,如果认为取0值比取0值所表示的情况更重要,则这样的二元变量被认为是单性的(好像只有一个状态) 29对称?不对称?对称?不对称?Ø 基于这样的二元变量的相似度被称为非恒定的相似度Ø 对非恒定相似度,最常见的描述对象i和对象j间差异度的参数是Jaccard相关系数: Ø 在计算过程中,负匹配的数目t被认为是不重要的,因此被忽略Ø 若一个数据集中既包括对称二元变量,又包含不对称二元变量,可以用混合变量方法来处理。
30示示 例例31示示 例例4. 符号、顺序和比例数值变 量?33((1 1)符号变量)符号变量符号变量(标称变量):Ø 符号变量是二元变量的推广,可具有多于两个的状态值,如颜色变量(红、橙、黄、绿、蓝等)Ø 设一个符号变量所取的状态个数为M,其中的状态可以用字母、符号,或一个整数集合来表示,如1,2,…M此处的整数仅是为方便数据处理而采用的,并不代表任何的特定的顺序34((1 1)符号变量)符号变量35((2 2)顺序变量)顺序变量顺序变量(序数型变量):Ø 一个离散的顺序变量类似于符号变量,但不同的是顺序变量的M个状态是以有意义的顺序进行排列的Ø 如专业等级是一个顺序变量,是按照助教、讲师、副教授和教授的顺序排列的Ø 一个连续的顺序变量,值的相对位置要比它的实际数值有意义的多,如某个比赛的相对排名(金牌、银牌和铜牌)可能比实际得分更重要36顺序变量的相异度顺序变量的相异度顺序变量的处理与区间标度变量非常类似,假设f是用于描述n个对象的一组顺序变量之一,关于f的相异度计算如下:接下来就可以用区间标度变量中所描述的任意一组距离度量方法进行计算相异度37((3 3)比例数值变量)比例数值变量比例数值变量(比例标度型变量):Ø 一个比例数值变量指在非线性的标度上取正的度量值的变量,如指数比例:38((3 3)比例数值变量)比例数值变量在计算比例数值变量所描述对象间的距离时,有两种处理方法:1)将比例数值变量看作区间标度变量,采用相同的方法处理,但不佳,因为比例尺度是非线性的;2)采用对数变换 ,对比例数值变量进行处理,然后将yif当做区间标度变量来处理。
5. 混合数据类型?40混合数据类型混合数据类型混合数据类型:Ø 在实际数据库中,数据对象往往是用复合数据类型来描述的,而且常常包括以上六种数据类型:区间标度变量、对称二元变量、不对称二元变量、符号类型、顺序类型和比例数值类型如何计算相异度?Ø 一种方法是将变量按类型分组,对每种类型的变量单独聚类分析,如果分析得对兼容的结果,这种方法可行,但实际中,往往不可行Ø 一种更可取的方法是将所有的变量一起处理,只进行一次聚类分析41混合数据类型混合数据类型Ø 一种技术是将不同类型的变量组合在单个相异度矩阵中,把所有有意义的变量转换到共同的值域区间[0,1]上Ø 假设数据集包含p个不同类型的变量,对象i和j间的相异度d(i,j)定义为:42混合数据类型混合数据类型变量f对i和j直接相异度的计算方式与其具体类型有关:9.4 基于划分的聚类类方法目前,在文献报道中有大量的聚类算法,算法的 选择主要取决于数据的类型、聚类的目的和应用 如果聚类分析被用作描述或探索性的攻击,则可以 对同样的数据尝试多种算法,以发现数据可能揭示 的结果主要的聚类类分析方法大体上,主要的聚类算法可以划分为如下几类:(1)划分方法;(2)层层次方法;(3)基于密度的方法;(4)基于网格的方法;(5)基于模型的方法。
45划分方法划分方法u给定一个n个对象或元组的数据库,划分方法构建数据的k个划分,每个划分表示一个聚簇(类),且 同时满足如下条件:(1)每个聚类内至少包含一个对象;(2)每个对象必须属于且只属于一个聚类u注意:在模糊划分计算中第二个要求可以放宽u一个好的划分的一般准则:Ø 在同一个类内的对象间尽可能接近或相似(high intra-class similarity);Ø 不同类中的对象间尽可能远离或不同(low inter-class similarity) 46划分方法划分方法u为达到全局最优,基于划分的聚类会要求穷举所有可能的划分,但实际中,绝大多数应用采用了以下两个比较流行的启发式方法:(1)k-平均(k-means)算法:每个聚类用该聚类中对象的平均值来表示;(2)k-中心点(k-mediods) 算法:每个聚类用接近聚类中心的一个对象来表示1. k-平均(k-means)聚类 算法?48K-K-平均聚类算法平均聚类算法uK-平均(k-means)算法以k为参数,把n个对象分为k个簇,以使簇内对象具有较高的相似度,而簇间的相似度较低u 相似度的计算根据一个簇中对象的平均值(被看作簇的重心)来进行。
49K-K-平均聚类算法平均聚类算法50K-K-平均聚类算法平均聚类算法算法的基本思想:u 首先,随机的选择k个对象,每个对象初始的代表了一个簇的平均值;u对剩余的每个对象,根据其与各个簇中心的距离,将它赋给最近的簇;u然后重新计算每个簇的平均值u 这个过程不断重复,直到准则函数收敛51K-K-平均聚类算法平均聚类算法通常选择均方差作为收敛准则函数:这个准则试图使得生成的结果尽可能地紧凑和独立:当结果簇是密集的,且簇与簇之间区别明显时,算法的效果较好52K-K-平均聚类算法平均聚类算法算法的特点:Ø 只适用于聚类均值有意义的场合,在某些应用中,如:数据集中包含符号属性时,直接应用k-means算法就有问题;Ø 用户必须事先指定k的个数;Ø 对噪声和孤立点数据敏感,少量的该类数据能够对聚类均值起到很大的影响53示例示例54示例示例55示例示例56示例示例2. k-中心点(k-mediods) 聚类算法?58K-K-中心点聚类算法中心点聚类算法uK-平均(k-means)算法对于孤立点是敏感的,如何消除?u 思路:不采用簇中对象的平均值作为参照点,而选用簇中位置最中心的对象,即中心点(mediod),仍然基于最小化所有对象与其参照点之间的相异度之和的原则来。