欢迎来到天天文库
浏览记录
ID:41706917
大小:90.12 KB
页数:29页
时间:2019-08-30
《模式识别大作业k近邻c均值模糊c均值》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西安电子科技大学模式识别大作业李国山学号:020951292011-12-13一、编程实现K・近邻算法1)近邻法的基本思想是在测试样本X的k个近邻中,按出现的样本类别来作为X的类别,即先对x的k个近邻一一找出它们的类别,然后对x类别进行判别,即在N个训练样本中,找出x的k个近邻。K-MEANS算法:输入:聚类个数k,以及包含n个数据对象的数据库。输出:满足方差最小标准的k个聚类。2)处理流程:(1)从n个数据对象任意选择k个对象作为初始聚类中心;(2)循坏(3)到(4)直到每个聚类不再发生变化为止(3)根据每个聚
2、类对象的均值(中心对象),计算每个对象与这些屮心对象的距离;并根据最小距离重新对相应对象进行划分;(4)重新计算每个(有变化)聚类的均值(中心对彖)k-means算法接受输入量k:然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对彖相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类屮对象的均值所获得一个“中心对象”(引力中心)来进行计算的。k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对彖作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相
3、似度(距离),分别将它们分配给与其最相似的(聚类屮心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数•k个聚类具有以下特点:各聚类木身尽可能的紧凑,而各聚类之间尽可能的分开。3)程序的说明:本程序中,训练样本集含有30个样本,矢量长度为5,对样*{1,184141,0.5513196}进行K=5的K-最近邻分类.样本从文件data.txt中读取,程序运行结果显示所有样本以及其类别,待分类样本所属的类别({1
4、,18,11,11,0.5513196}属于“2“类),以及它的5个最近邻的类别和与它之间的距离。注:第92行的代码中文件的路径,,F:\study\knn\data.txt"®进行相应改动.#include#inelude#include#defineNATTRS5//numberofattributes#defineMAXSZ1700//maxsizeoftrainingset#defineMAXVALUE10000.0//thebigges
5、tattribute'svalueisbelowlOOOO(int)#defineK5structvector{doubleattributes[NATTRS];doubleclasslabel;};structitem{doubledistanee;doubleclasslabel;};structvectortrSet[MAXSZ];//globalvariable,thetrainingsetstructitemknn[K];//globalvariable,thek-neareast-neighbours
6、etintcurTSize=0;//currentsizeofthetrainingsetintAddtoTSet(structvectorv){if(curTSize>=MAXSZ){cout«endlv<”Thetrainingsethas,,«MAXSZ«Hexamples!n«endlvvendl;return0;}trSet[curTSize]=v;curTSize++;return1;}doubleDistance(structvectorvl,structvectorv2){doubled=0.0;
7、doubletern=0.0;for(inti=0;i1)for(inti=l;i<
8、K;i++)if(knn[i].distance>knn[maxNo].distanee)maxNo=i;returnmaxNo;}doubleClassify(structvectorv)//decidewhichclasslabelwillbeassignedto//agiveninputvetorwiththeknnmethod{doubledd=0;intmaxn
此文档下载收益归作者所有