K-均值聚类分析_第1页
K-均值聚类分析_第2页
K-均值聚类分析_第3页
K-均值聚类分析_第4页
K-均值聚类分析_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1案例题目:选取一组点(三维或二维),在空间内绘制出来,之后根据K均值聚类,把这组点分为n类。此例中选取的三维空间内的点由均值分别为(0,0,0),(4,4,4),(-4,4,-4),300000协方差分别为030,030300030的150个由mvnrnd函数随机生成。2原理运用与解析:2.1聚类分析的基本思想聚类分析是根据“物以类聚”的道理,对样本或指标进行分类的一种多元统计分析方法,它们讨论的对象是大量的样本,要求能合理地按各自的特性进行合理的分类。对于所选定的属性或特征,每组内的模式都是相似的,而与其他组的模式差别大。一类主要方法是根据各个待分类模式的属性或特征相似程度进行分类,相似的

2、归为一类,由此将待分类的模式集分成若干个互不重叠的子集,另一类主要方法是定义适当的准则函数运用有关的数学工具进行分类。由于在分类中不需要用训练样本进行学习和训练,故此类方法称为无监督分类。聚类的目的是使得不同类别的个体之间的差别尽可能的大,而同类别的个体之间的差别尽可能的小。聚类又被称为非监督分类,因为和分类学习相比,分类学习的对象或例子有类别标记,而要聚类的例子没有标记,需要由聚类分析算法来自动确定,即把所有样本作为未知样本进行聚类。因此,分类问题和聚类问题根本不同点为:在分类问题中,知道训练样本例的分类属性值,而在聚类问题中,需要在训练样例中找到这个分类属性值。聚类分析的基本思想是认为研究

3、的样本或变量之间存在着程度不同的相似性(亲疏关系)。研究样本或变量的亲疏程度的数量指标有两种:一种叫相似系数,性质越接近的样本或变量,它们的相似系数越接近1或-1,而彼此无关的变量或样本它们的相似系数越接近0,相似的为一类,不相似的为不同类。另一种叫距离,它是将每一个样本看做p维空间的一个点,并用某种度量测量点与点之间的距离,距离较近的归为一类,距离较远的点应属于不同的类。2.2动态聚类法思想动态聚类方法、亦称逐步聚类法.一类聚类法.属于大样本聚类法。具体作法是:先粗略地进行预分类,然后再逐步调整,直到把类分得比较合理为止。这种分类方法较之系统聚类法,具有计算量较小、占用计算机存贮单元少、方法

4、简单等优点,所以更适用于大样本的聚类分析,是一种普遍被采用的方法。这种方法具有以下三个要素:(1)选定某种距离度量作为样本间的相似性度量;(2)确定某种可以评价聚类结果质量的准则函数;(3)给定某个初始分类,然后用迭代算法找出使得准则函数取极值的最好聚类结果。动态聚类法在计算迭代过程中,类心会随着迭代次数进行修正和改变。动态聚类法的基本步骤:(1)选取初始聚类中心及有关参数,进行初始聚类。(2)计算模式和聚类的距离,调整模式的类别。(3)计算各聚类的参数,删除,合并或分裂一些聚类。(4)从初始聚类开始,运用迭代算法动态地改变模式的类别和聚类的中心,使准则函数取极值或设定的参数达到设计要求时停止

5、。2.3K-均值聚类算法的思想K-均值算法是一种基于划分的聚类算法,它通过不断的迭代过程来进行聚类,当算法收敛到一个结束条件时就终止迭代过程,输出聚类结果。由于其算法思想简便,又容易实现,因此K一均值算法己成为一种目前最常用的聚类算法之一。K-均值算法解决的是将含有n个数据点(实体)的集合Xx1,x2,,xn划分为k个类Cj的问题,其中j1,2,.,k,算法首先随机选取k个数据点作为k个类的初始类中心,集合中每个数据点被划分到与其距离最近的类中心所在的类中,形成了k个聚类的初始分布。对分配完的每一个类计算新的类中心,然后继续进行数据分配的过程,这样迭代若干次之后,若类中心不再发生变化,则说明数

6、据对象全部分配到自己所在的类中,证明函数收敛。在每一次的迭代过程中都要对全体数据点的分配进行调整,然后重新计算类中心,进入下一次迭代过程,若在某一次迭代过程中,所有数据点的位置没有变化,相应的类中心也没有变化,此时标志着聚类准则函数已经收敛,算法结束。通常采用的目标函数形式为平方误差准则函数:其中,Xi为数据对象,Ci表示类Ci的质心,E则表示数据集中所有对象的误差平方和。该目标函数采用欧氏距离。K-均值聚类算法的过程描述如下:任选k个模式特征矢量作为初始聚类中心:乙(0),z20),.,zC0),令k=0.ir(2)将待分类的模式识别特征矢量集x中的模式逐个按最小距离原则分划给k类中的某一类

7、,即如果d(k)mind;k),i1,2,.,N,则判x,1)式中,dj(k)表示为和(k)的中心zjk)的距离,上标表示迭代次数,于是产生新的聚类(k1),j1,2,.,k(3)计算重新分类后的各类心z(k1)Xi,j1,2,.,knjXi(k1)(k1)式中,n(k1)为j类中所含模式的个数。如果z(k1)zjk)(j1,2,.,k),则结束;否则,kk1,转至步骤(2)。3.结果分析在二维和三维空间里,原样本点为蓝色,随机选取样本点中的四个点作为中心,用*表示,其他对象根据与这四个聚类中心(对象)的距离,根据最近距离原则,逐个分别聚类到这四个聚类中心所代表的聚类中,每完成一轮聚类,聚类的

8、中心会发生相应的改变,之后更新这四个聚类的聚类中心,根据所获得的四个新聚类中心,以及各对象与这四个聚类中心的距离,根据最近距离原则,对所有对象进行重新归类。再次重复上述过程就可获得聚类结果,化,整个聚类操作结束经过K均值聚类计算,样本点分为红,蓝,绿,黑四个聚类,计算出新的四个聚类中心,用*表示。该算法中,一次迭代中把每个数据对象分到离它最近的聚类中心所在类,这个过程的时间复杂度O(nkd),这里的n指的是总的数据对象个数,k是指定的聚类数,d是当各聚类中的对象(归属)已不再变数据对象的位数:新的分类产生后需要计算新的聚类中心,这个过程的时间复杂度为O(nd)。因此,这个算法一次迭代后所需要的

9、总的时间复杂度为O(nkd).通过实验可以看出,k个初始聚类中心点的选取对聚类结果有较大的影响,因为在该算法中是随机地任意选取k个点作为初始聚类中心,分类结果受到取定的类别数目和聚类中心初始位置的影响,所以结果只是局部最优。K-均值算法常采用误差平方和准则函数作为聚类准则函数(目标函数).目标函数在空间状态是一个非凸函数, 非凸函数往往存在很多个局部极小值,只有一个是全局最小。所以通过迭代计算,目标函数常常达到局部最小而难以得到全局最小。聚类个数k的选定是很难估计的,很多时候我们事先并不知道给定的数据集应该分成多少类才合适。关于K-均值聚类算法中聚类数据k值得确定,有些根据方差分析理论,应用混

10、合F统计量来确定最佳分类树,并应用了模糊划分嫡来验证最佳分类的准确性。将类的质心(均值点)作为聚类中心进行新一轮聚类计算,将导致远离数据密集区的孤立点和噪声点会导致聚类中心偏离真正的数据密集区,所以K-均值算法对噪声点和孤立点非常敏感。图1为未聚类前初始样本及中心,图2为聚类后的样本及中心。切馅竦其中力-1C图1未聚类前初始样本及中心图1聚类后的样本及中心4.程序:clear;clc;TH=0.001;N=20;n=0;th=1;%第一类数据mu1=000;%均值S1=300;030;003;X1=mvnrnd(mu1,S1,50);为协方差矩阵,50为规模%第一类数据mu2=444;%均值*

11、-10*-10S2=000;030;003;%协方差矩阵%协方差矩阵犹生多维正态随机数,mul为期望向量,s1X2=mvnrnd(mu2,S2,50);%第一类数据mu3=-44-4;%均值S3=300;030;003;%协方差矩阵X3=mvnrnd(mu3,S3,50);X=X1;X2;X3;%三类数据合成一个不带标号的数据类plot3(X(:,1),X(:,2),X(:,3),+);刎示holdongridontitle(初始聚类中心);k=4;count,d=size(X);centers=X(round(rand(k,1)*count),:);id=zeros(count,1);%会出

12、聚类中心plot3(centers(:,1),centers(:,2),centers(:,3),kxMarkerSize,10,LineWidth,2)plot3(centers(:,1),centers(:,2),centers(:,3),koMarkerSize,10,LineWidth,2)dist=zeros(k,1);newcenters=zeros(k,d);while(nTH)%whilenNforix=1:countforik=1:kdist(ik)=sum(X(ix,:)-centers(ik,:).A2);end,tmp=sort(dist);%S?哪个类最近则属于那个类

13、id(ix)=tmp(1);endth=0;forik=1:kidtmp=find(id=ik);iflength(idtmp)=0return;endnewcenters(ik,:)=sum(X(idtmp,:),1)./length(idtmp);th=th+sum(newcenters(ik,:)-centers(ik,:).A2);endcenters=newcenters;n=n+1;endfigure(2)plot3(X(find(id=1),1),X(find(id=1),2),X(find(id=1),3),r*),holdonplot3(X(find(id=2),1),X(find(id=2),2),X(find(id=2),3),g*),holdonplot3(X(find(id=3),1),X(find(id=3),2),X(find(id=3),3),b*),holdonplot3(X(find(id=4),

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论