资源描述:
《模式识别报告模版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学与计算机学院课程名称:模式识别题目:K-Means聚类任课老师:王晓明年级专业:2011级计算机应用技术姓名:段文峰学 号:212011081203004时间:2011年12月25日模式识别——K-Means聚类目录一、K-means聚类介绍2二、K-means算法描述3三、K-means算法java实现41、实例42、算法的JAVA实现7四、K-means算法性能分析81、优势82、弊端9五、K-means算法改进91、K的调整92、初始聚类中心的选取103、用类核代替类心10六、附录——核心算法的主要源代码11参考文献14第16页共14页模式识别——K-Mean
2、s聚类K-Means聚类一、K-means聚类介绍K-means算法,也被称为k-平均或k-均值算法(k由来是由于算法实现要用户事先给定要划分成K类),是一种得到最广泛使用的动态聚类算法。它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点。K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。1、条件及约定设待分类的模式特征矢量集为:类的数目k是事先取定的。2、算法思想算法的主要思想是通过迭代过程把数据集划分为不同的类别,使
3、得评价聚类性能的达到最优,从而使生成的每个聚类内紧凑,类间独立。该方法取定k个类别和选取k个初始聚类中心,按最小距离原则将各模式分配到k类中的某一类,之后不断地计算类心和调整各模式的类别,最终使各模式到其判属类别中心的距离平方之和最小。3、划分聚类方法对数据集进行聚类时包括如下二个要点:(1)选定某种距离作为数据样本间的相似性度量k-means聚类算法不适合处理离散型属性,对连续型属性比较适合。因此在计算数据样本之间的距离时,可以根据实际需要选择欧式距离、曼哈顿距离或者明考斯距离中的一种来作为算法的相似性度量,其中最常用的是欧氏距离。假设给定的数据集,X中的样本用n个描述
4、属性A1,A2…An来表示,并且n个描述属性都是连续型属性。数据样本xi=(xi1,xi2,…xin),xj=(xj1,xj2,…xjn)其中,xi1,xi2,…xin和xj1,xj2,…xjn分别是样本xi和xj对应n个描述属性A1,A2,…An的具体取值。样本xi和xj之间的相似度通常用它们之间的距离d(xi,xj)来表示,距离越小,样本xi和xj越相似,差异度越小;距离越大,样本xi和xj越不相似,差异度越大。第16页共14页模式识别——K-Means聚类欧氏距离公式如下:(2)选择评价聚类性能的准则函数k-means聚类算法使用误差平方和准则函数来评价聚类性能。给
5、定数据集X,其中只包含描述属性,不包含类别属性。假设X包含k个聚类子集X1,X2,…XK;各个聚类子集中的样本数量分别为n1,n2,…,nk;各个聚类子集的均值代表点(也称聚类中心)分别为m1,m2,…,mk,则误差平方和准则函数公式为:。第16页共14页模式识别——K-Means聚类二、K-means算法描述K-means算法步骤:(1)任选k个模式特征矢量作为初始聚类中心:z1(0),z2(0),……,zk(0),令t=0;(2)将待分类的模式特征矢量集{xi}中的模式逐个按最小距离原则分划给k类中的某一类,即如果则判式中,表示xi和的中心的距离,上标表示迭代次数。于
6、是产生新的聚类,j=1,2,…,k。(3)计算重新分类后的各类心式中,为类中所含模式的个数。因为这一步采取平均的方法计算调整后各类的中心,且定为k类,故称为K-均值法。(4)如果,则结束;否则,t=t+1.转至步骤(2)。第16页共14页模式识别——K-Means聚类三、K-means算法java实现1、实例例:已知有20个样本,每个样本有2个特征,数据分布如图1所示,使用k-均值法实现样本分类(k=2)。样本序号x1x2x3x4x5x6x7x8x9x10特征X0101212367特征Y0011122266x11x12x13x14x15x16x17x18x19x20867
7、89789896777788899图1例题样本点初始分布解:第一步(1):令簇的数目k=2,选初始聚类中心为:第二步(1):计算各点到初始聚类中心的距离,划分其归属第16页共14页模式识别——K-Means聚类因为,所以。同理同样把所有与第二个聚类中心的距离计算出来,判断都属于。因此分为两类:(1);(2);,如图2所示。图2例题样本点第一次聚类分布第三步(1):根据新分成的两类建立新的聚类中心:第16页共14页模式识别——K-Means聚类第四步(1):由于(新旧聚类中心不等),转第二步(1);第二步(2):重新计算x1,x