資源描述:
《模式識別大作業(yè)k近鄰c均值模糊c均值》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、西安電子科技大學(xué)模式識別大作業(yè)李國山學(xué)號:020951292011-12-13一、編程實現(xiàn)K?近鄰算法1)近鄰法的基本思想是在測試樣本X的k個近鄰中,按出現(xiàn)的樣本類別來作為X的類別,即先對x的k個近鄰一一找出它們的類別,然后對x類別進(jìn)行判別,即在N個訓(xùn)練樣本中,找出x的k個近鄰。K-MEANS算法:輸入:聚類個數(shù)k,以及包含n個數(shù)據(jù)對象的數(shù)據(jù)庫。輸出:滿足方差最小標(biāo)準(zhǔn)的k個聚類。2)處理流程:(1)從n個數(shù)據(jù)對象任意選擇k個對象作為初始聚類中心;(2)循壞(3)到(4)直到每個聚類不再發(fā)生變化為止(3)根據(jù)每個聚
2、類對象的均值(中心對象),計算每個對象與這些屮心對象的距離;并根據(jù)最小距離重新對相應(yīng)對象進(jìn)行劃分;(4)重新計算每個(有變化)聚類的均值(中心對彖)k-means算法接受輸入量k:然后將n個數(shù)據(jù)對象劃分為k個聚類以便使得所獲得的聚類滿足:同一聚類中的對彖相似度較高;而不同聚類中的對象相似度較小。聚類相似度是利用各聚類屮對象的均值所獲得一個“中心對象”(引力中心)來進(jìn)行計算的。k-means算法的工作過程說明如下:首先從n個數(shù)據(jù)對象任意選擇k個對彖作為初始聚類中心;而對于所剩下其它對象,則根據(jù)它們與這些聚類中心的相
3、似度(距離),分別將它們分配給與其最相似的(聚類屮心所代表的)聚類;然后再計算每個所獲新聚類的聚類中心(該聚類中所有對象的均值);不斷重復(fù)這一過程直到標(biāo)準(zhǔn)測度函數(shù)開始收斂為止。一般都采用均方差作為標(biāo)準(zhǔn)測度函數(shù)?k個聚類具有以下特點:各聚類木身盡可能的緊湊,而各聚類之間盡可能的分開。3)程序的說明:本程序中,訓(xùn)練樣本集含有30個樣本,矢量長度為5,對樣*{1,184141,0.5513196}進(jìn)行K=5的K-最近鄰分類.樣本從文件data.txt中讀取,程序運(yùn)行結(jié)果顯示所有樣本以及其類別,待分類樣本所屬的類別({1
4、,18,11,11,0.5513196}屬于“2“類),以及它的5個最近鄰的類別和與它之間的距離。注:第92行的代碼中文件的路徑,,F:\study\knn\data.txt"?進(jìn)行相應(yīng)改動.#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