《聚类分析KmeansandKmedoids聚类》由会员分享,可在线阅读,更多相关《聚类分析KmeansandKmedoids聚类(32页珍藏版)》请在金锄头文库上搜索。
1、数据挖掘数据挖掘Topic3-聚类分析聚类分析K-means &K-medoids 聚类聚类2024/7/30主要内容K-means算法Matlab程序实现在图像分割上的简单应用K-medoids算法k-中心点聚类算法中心点聚类算法-PAMK-medoids改进算法2024/7/30基于划分的聚类方法基于划分的聚类方法n构造构造n个对象数据库个对象数据库D的划分的划分, 将其划分成将其划分成k个聚类个聚类n启发式方法启发式方法: k-平均值平均值(k- means)和和 k-中心点中心点(k- medoids) 算法算法nk-平均值平均值(MacQueen67): 每个簇用该簇中对象的平均值来
2、表示每个簇用该簇中对象的平均值来表示 nk-中心点或中心点或 PAM (Partition around medoids) (Kaufman & Rousseeuw87): 每个簇用接近聚类中心的一个对象来表示每个簇用接近聚类中心的一个对象来表示 n这些启发式算法适合发现中小规模数据库中的球状聚类这些启发式算法适合发现中小规模数据库中的球状聚类n对于大规模数据库和处理任意形状的聚类对于大规模数据库和处理任意形状的聚类,这些算法需要这些算法需要进一步扩展进一步扩展2024/7/30K-means聚类算法聚类算法n算法描述算法描述1.为中心向量c1, c2, , ck初始化k个种子2.分组:将样本
3、分配给距离其最近的中心向量由这些样本构造不相交( non-overlapping )的聚类3.确定中心:用各个聚类的中心向量作为新的中心4.重复分组和确定中心的步骤,直至算法收敛2024/7/30K-means聚类算法聚类算法(续)(续)n算法的具体过程算法的具体过程1.从数据集 中任意选取k个赋给初始的聚类中心c1, c2, , ck;2.对数据集中的每个样本点xi,计算其与各个聚类中心cj的欧氏距离并获取其类别标号:3. 3.按下式重新计算k个聚类中心;4.重复步骤2和步骤3,直到达到最大迭代次数为止。2024/7/30Matlab程序实现程序实现function M, j, e = km
4、eans(X, K, Max_Its)N,D=size(X);I=randperm(N);M=X(I(1:K),:);Mo = M;for n=1:Max_Its for k=1:K Dist(:,k) = sum(X - repmat(M(k,:),N,1).2,2); end i, j=min(Dist, , 2); for k=1:K if size(find(j=k)0 M(k, :) = mean(X(find(j=k), :); end end2024/7/30Matlab程序实现程序实现(续)(续) Z = zeros(N,K); for m=1:N Z(m,j(m) = 1;
5、end e = sum(sum(Z.*Dist)./N); fprintf(%d Error = %fn, n, e); Mo = M;end2024/7/30k-平均聚类算法平均聚类算法(续续)n例例012345678910012345678910012345678910012345678910K=2任意选择任意选择 K个对个对象作为初始聚类象作为初始聚类中心中心将每个将每个对象赋对象赋给最类给最类似的中似的中心心更新簇更新簇的平均的平均值值重新赋值重新赋值更新簇更新簇的平均的平均值值重新赋值重新赋值2024/7/30在图像分割上的简单应用在图像分割上的简单应用例例1:1.图片:一只遥望大海
6、的小狗;2.此图为100 x 100像素的JPG图片,每个像素可以表示为三维向量(分别对应JPEG图像中的红色、绿色和蓝色通道) ;3.将图片分割为合适的背景区域(三个)和前景区域(小狗);4.使用K-means算法对图像进行分割。2024/7/30在图像分割上的简单应用在图像分割上的简单应用(续)(续)分割后的效果注:最大迭代次数为20次,需运行多次才有可能得到较好的效果。2024/7/30在图像分割上的简单应用在图像分割上的简单应用(续)(续)例例2:注:聚类中心个数为5,最大迭代次数为10。2024/7/30k-平均聚类算法平均聚类算法(续续)n优点优点: 相对有效性相对有效性: O(t
7、kn), 其中其中 n 是对象数目是对象数目, k 是簇数目是簇数目, t 是迭代次数是迭代次数; 通常通常, k, t n.n当结果簇是密集的,而簇与簇之间区别明显时,它的效果当结果簇是密集的,而簇与簇之间区别明显时,它的效果较好较好nComment: 常常终止于常常终止于局部最优局部最优. n全局最优全局最优 可以使用诸如确定性的退火可以使用诸如确定性的退火(deterministic annealing)和遗传算法和遗传算法(genetic algorithms)等技术得到等技术得到2024/7/30k-平均聚类算法平均聚类算法(续续)n弱点弱点n只有在簇的平均值只有在簇的平均值(mea
8、n)被定义的情况下才能使用被定义的情况下才能使用.可能不适用于可能不适用于某些应用某些应用, 例如涉及有例如涉及有分类属性分类属性的数据的数据n需要预先指顶簇的数目需要预先指顶簇的数目k, n不能处理噪音数据和孤立点不能处理噪音数据和孤立点(outliers)n不适合用来发现具有非凸形状不适合用来发现具有非凸形状(non-convex shapes)的簇的簇2024/7/30k-中心点聚类方法中心点聚类方法nk-平均值算法对孤立点很敏感平均值算法对孤立点很敏感!n因为具有特别大的值的对象可能显著地影响数据的分布因为具有特别大的值的对象可能显著地影响数据的分布.nk-中心点中心点(k-Medoi
9、ds): 不采用簇中对象的平均值作为参照不采用簇中对象的平均值作为参照点点, 而是而是选用簇中位置最中心的对象选用簇中位置最中心的对象, 即中心点即中心点(medoid)作作为参照点为参照点. 0123456789100123456789100123456789100123456789100123456789100123456789102024/7/30k-中心点聚类方法中心点聚类方法(续续)n找聚类中的代表对象找聚类中的代表对象(中心点中心点)nPAM (Partitioning Around Medoids, 1987)n首先为每个簇随意选择选择一个代表对象首先为每个簇随意选择选择一个代表
10、对象, 剩余的对象根剩余的对象根据其与代表对象的距离分配给最近的一个簇据其与代表对象的距离分配给最近的一个簇; 然后反复地然后反复地用非代表对象来替代代表对象,以改进聚类的质量用非代表对象来替代代表对象,以改进聚类的质量 nPAM 对于较小的数据集非常有效对于较小的数据集非常有效, 但不能很好地扩展到大但不能很好地扩展到大型数据集型数据集nCLARA (Kaufmann & Rousseeuw, 1990)抽样抽样nCLARANS (Ng & Han, 1994): 随机选样随机选样2024/7/30k-中心点聚类方法中心点聚类方法(续续)n基本思想:基本思想:n首先为每个簇随意选择选择一个代
11、表对象首先为每个簇随意选择选择一个代表对象; 剩余的对象剩余的对象根据其与代表对象的距离分配给最近的一个簇根据其与代表对象的距离分配给最近的一个簇n然后反复地用非代表对象来替代代表对象然后反复地用非代表对象来替代代表对象, 以改进聚类以改进聚类的质量的质量n聚类结果的质量用一个代价函数来估算聚类结果的质量用一个代价函数来估算, 该函数评估了该函数评估了对象与其参照对象之间的平均相异度对象与其参照对象之间的平均相异度 2024/7/30k-中心点聚类方法中心点聚类方法(续续)n为了判定一个非代表对象为了判定一个非代表对象Orandom 是否是当前一个代表对象是否是当前一个代表对象Oj的好的替代的
12、好的替代, 对于每一个非代表对象对于每一个非代表对象p,考虑下面的四种情况:考虑下面的四种情况: n第一种情况:第一种情况:p当前隶属于代表对象当前隶属于代表对象 Oj. 如果如果Oj被被Orandom所代替所代替, 且且p离离Oi最近最近, ij, 那么那么p被重新分配给被重新分配给Oi n第二种情况:第二种情况:p当前隶属于代表对象当前隶属于代表对象 Oj. 如果如果Oj 被被Orandom代替代替, 且且p离离Orandom最最近近, 那么那么p被重新分配给被重新分配给Orandom n第三种情况:第三种情况:p当前隶属于当前隶属于Oi,ij。如果如果Oj被被Orandom代替,而代替,
13、而p仍然离仍然离Oi最近,最近,那么对象的隶属不发生变化那么对象的隶属不发生变化 n第四种情况:第四种情况:p当前隶属于当前隶属于Oi,ij。如果如果Oj被被Orandom代替,且代替,且p离离Orandom最近,最近,那么那么p被重新分配给被重新分配给Orandom 2024/7/30k-中心点聚类方法中心点聚类方法(续续)n 1.重新分配给重新分配给Oi 2. 重新分配给重新分配给Orandom3. 不发生变化不发生变化 4.重新分配给重新分配给Orandomk-中心点聚中心点聚类代价函数的四种情况代价函数的四种情况2024/7/30k-中心点聚类方法中心点聚类方法(续续)n算法算法: k
14、-中心点中心点(1) 随机选择随机选择k个对象作为初始的代表对象;个对象作为初始的代表对象;(2) repeat(3) 指派每个剩余的对象给离它最近的代表对象所代表的簇;指派每个剩余的对象给离它最近的代表对象所代表的簇;(4) 随意地选择一个非代表对象随意地选择一个非代表对象Orandom;(5) 计算用计算用Orandom代替代替Oj的总代价的总代价S;(6) 如如果果S0,则则用用Orandom替替换换Oj,形形成成新新的的k个个代代表表对对象象的的集集合;合;(7) until 不发生变化不发生变化2024/7/30PAMnPAM (Partitioning Around Medoids
15、) (Kaufman and Rousseeuw, 1987)n是最早提出的是最早提出的k-中心点聚类算法中心点聚类算法n基本思想基本思想:n随机选择随机选择k个代表对象个代表对象n反复地试图找出更好的代表对象反复地试图找出更好的代表对象: 分析所有可能的对象对,每个对分析所有可能的对象对,每个对中的一个对象被看作是代表对象中的一个对象被看作是代表对象, 而另一个不是而另一个不是. 对可能的各种组合对可能的各种组合, 估算聚类结果的质量估算聚类结果的质量 2024/7/30PAM(续续)Total Cost = 20012345678910012345678910K=2Arbitrary ch
16、oose k object as initial medoidsAssign each remaining object to nearest medoidsRandomly select a nonmedoid object,OramdomCompute total cost of swapping012345678910012345678910Total Cost = 26Swapping O and Oramdom If quality is improved.Do loopUntil no change0123456789100123456789102024/7/30PAM(续续)n当
17、存在噪音和孤立点时当存在噪音和孤立点时, PAM 比比 k-平均方法更健壮平均方法更健壮. 这是因为中心点不象平均值那么容易被极端数据影这是因为中心点不象平均值那么容易被极端数据影响响 nPAM对于小数据集工作得很好对于小数据集工作得很好, 但不能很好地用于但不能很好地用于大数据集大数据集 n每次迭代每次迭代O(k(n-k)2 )其中其中 n 是数据对象数目是数据对象数目, k 是聚类数是聚类数基于抽样的方法基于抽样的方法, CLARA(Clustering LARge Applications)2024/7/30CLARA (Clustering Large Applications) (1
18、990)nCLARA (Kaufmann and Rousseeuw in 1990)n不考虑整个数据集不考虑整个数据集, 而是选择数据的一小部分作为样本而是选择数据的一小部分作为样本n它从数据集中抽取多个样本集它从数据集中抽取多个样本集, 对每个样本集使用对每个样本集使用PAM, 并并以最好的聚类作为输出以最好的聚类作为输出n优点优点: 可以处理的数据集比可以处理的数据集比 PAM大大n缺点缺点:n有效性依赖于样本集的大小有效性依赖于样本集的大小n基于样本的好的聚类并不一定是基于样本的好的聚类并不一定是 整个数据集的好的聚类整个数据集的好的聚类, 样本可能发生倾斜样本可能发生倾斜n 例如例如
19、, Oi是最佳的是最佳的k个中心点之一个中心点之一, 但它不包含在样本中但它不包含在样本中, CLARA将找不将找不到最佳聚类到最佳聚类2024/7/30CLARA - 效率n由取样大小决定nPAM 利用完整资料集CLARA 利用取样资料集盲点:取样范围不包含最佳解 sampledbestTrade-off242024/7/30CLARA 改良n解決:CLARANS (Clustering Large Application based upon RANdomized Search)n应用 graphn考虑紧邻节点n不局限于区域性n负杂度:O(n2) 缺点252024/7/30CLARANS
20、(“Randomized” CLARA) (1994)nCLARANS (A Clustering Algorithm based on Randomized Search) (Ng and Han94)nCLARANS将采样技术和将采样技术和PAM结合起来结合起来nCLARA在搜索的每个阶段有一个固定的样本在搜索的每个阶段有一个固定的样本nCLARANS任何时候都不局限于固定样本任何时候都不局限于固定样本, 而是在搜索的每一步带而是在搜索的每一步带一定随机性地抽取一个样本一定随机性地抽取一个样本 n聚类过程可以被描述为对一个图的搜索聚类过程可以被描述为对一个图的搜索, 图中的每个节点图中的每
21、个节点是一个潜在的解是一个潜在的解, 也就是说也就是说 k -medoidsn相邻节点:代表的集合只有一个对象不同相邻节点:代表的集合只有一个对象不同n在替换了一个代表对象后得到的聚类结果被称为当前聚类在替换了一个代表对象后得到的聚类结果被称为当前聚类结果的邻居结果的邻居 2024/7/30CLARANS(续续)n如果一个更好的邻居被发现如果一个更好的邻居被发现, CLARANS移到该邻居节点移到该邻居节点, 处理过程重新开始处理过程重新开始, 否则当前的聚类达到了一个局部最优否则当前的聚类达到了一个局部最优n如果找到了一个局部最优如果找到了一个局部最优, CLARANS从随机选择的节点开从随
22、机选择的节点开始寻找新的局部最优始寻找新的局部最优n实验显示实验显示CLARANS比比PAM和和CLARA更有效更有效 nCLARANS能够探测孤立点能够探测孤立点 n聚焦技术和空间存取结构可以进一步改进它的性能聚焦技术和空间存取结构可以进一步改进它的性能 (Ester et al.95)2024/7/30综合比较K meansK medoidsCLARACLARANS优点优点简单简单不受不受极值影响极值影响可可处理大数据处理大数据找到最佳解找到最佳解缺缺点点受极值影响受极值影响无法处理大数据无法处理大数据不一定不一定是是最佳解最佳解速度慢速度慢复杂复杂度度O(nkt)O(k(n-k)2)O(
23、ks2+k(n-k)O(n2)精確度精確度速度速度282024/7/30作业作业n编程实现编程实现K-means算法针对算法针对UCI的的waveform数数据集中每类数据取据集中每类数据取100个;对一副无噪图像进行个;对一副无噪图像进行分割;分割;n编程实现编程实现PAM对部分对部分waveform数据集加数据集加20%的高斯噪声;同时对一副噪声图像进行分割;的高斯噪声;同时对一副噪声图像进行分割;n编程实现编程实现CLARA在全部的在全部的waveform数据集上的聚类;数据集上的聚类; due date:4月25日2024/7/30K-means聚类算法聚类算法(续)(续)n分组:n将
24、样本分配给距离它们最近的中心向量,并使目标函数值减小n确定中心:n亦须有助于减小目标函数值2024/7/30k-中心点聚类方法中心点聚类方法(续续)n 1.重新分配给重新分配给Oi 2. 重新分配给重新分配给Orandom3. 不发生变化不发生变化 4.重新分配给重新分配给Orandomk-中心点聚中心点聚类代价函数的四种情况代价函数的四种情况2024/7/30k-中心点聚类方法中心点聚类方法(续续)n基本思想:基本思想:n首先为每个簇随意选择选择一个代表对象首先为每个簇随意选择选择一个代表对象; 剩余的对象剩余的对象根据其与代表对象的距离分配给最近的一个簇根据其与代表对象的距离分配给最近的一个簇n然后反复地用非代表对象来替代代表对象然后反复地用非代表对象来替代代表对象, 以改进聚类以改进聚类的质量的质量n聚类结果的质量用一个代价函数来估算聚类结果的质量用一个代价函数来估算, 该函数评估了该函数评估了对象与其参照对象之间的平均相异度对象与其参照对象之间的平均相异度 2024/7/30