




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)挖掘?qū)嶒?yàn)報(bào)告(三)聚類分析姓名:李圣杰班級(jí):計(jì)算機(jī)1304學(xué)號(hào): 一、實(shí)驗(yàn)?zāi)康?、 掌握k-means聚類方法;2、 通過(guò)自行編程,對(duì)三維空間內(nèi)的點(diǎn)用k-means方法聚類。二、實(shí)驗(yàn)設(shè)備 PC一臺(tái),dev-c+5.11三、實(shí)驗(yàn)內(nèi)容 1.問(wèn)題描述:立體空間三維點(diǎn)的聚類.說(shuō)明:數(shù)據(jù)放在數(shù)據(jù)文件中(不得放在程序中),第一行是數(shù)據(jù)的個(gè)數(shù),以后各行是各個(gè)點(diǎn)的x,y,z坐標(biāo)。2.設(shè)計(jì)要求讀取文本文件數(shù)據(jù),并用K-means方法輸出聚類中心3. 需求分析k-means 算法接受輸入量k;然后將n個(gè)數(shù)據(jù)對(duì)象劃分為 k個(gè)聚類以便使得所獲得的聚類滿足:同一聚類中的對(duì)象相似度較高;而不同聚類中的對(duì)象相似度較小。
2、聚類相似度是利用各聚類中對(duì)象的均值所獲得一個(gè)“中心對(duì)象”(引力中心)來(lái)進(jìn)行計(jì)算的。k-means算法的工作過(guò)程說(shuō)明如下:首先從n個(gè)數(shù)據(jù)對(duì)象任意選擇k個(gè)對(duì)象作為初始聚類中心,而對(duì)于所剩下的其它對(duì)象,則根據(jù)它們與這些聚類中心的相似度(距離),分別將它們分配給與其最相似的(聚類中心所代表的)聚類。然后,再計(jì)算每個(gè)所獲新聚類的聚類中心(該聚類中所有對(duì)象的均值),不斷重復(fù)這一過(guò)程直到標(biāo)準(zhǔn)測(cè)度函數(shù)開始收斂為止。一般都采用均方差作為標(biāo)準(zhǔn)測(cè)度函數(shù),具體定義如下: (1)其中E為數(shù)據(jù)庫(kù)中所有對(duì)象的均方差之和,p為代表對(duì)象的空間中的一個(gè)點(diǎn),mi為聚類Ci的均值(p和mi均是多維的)。公式(1)所示的聚類標(biāo)準(zhǔn),旨在
3、使所獲得的k個(gè)聚類具有以下特點(diǎn):各聚類本身盡可能的緊湊,而各聚類之間盡可能的分開。四、實(shí)驗(yàn)步驟Step 1.讀取數(shù)據(jù)組,從N個(gè)數(shù)據(jù)對(duì)象任意選擇k個(gè)對(duì)象作為初始聚類中心;Step 2.循環(huán)Step 3到Step 4直到每個(gè)聚類不再發(fā)生變化為止;Step 3.根據(jù)每個(gè)聚類對(duì)象的均值(中心對(duì)象),計(jì)算每個(gè)對(duì)象與這些中心對(duì)象的距離,并根據(jù)最小距離重新對(duì)相應(yīng)對(duì)象進(jìn)行劃分;Step 4.重新計(jì)算每個(gè)(有變化)聚類的均值(中心對(duì)象)。代碼#include #include #include #include int K,Vectordim,datasize,seed=1;float *data,*kmatr
4、ix;float *max_column,*min_column;/*創(chuàng)建維數(shù)可指定的二維動(dòng)態(tài)數(shù)組arraymn*/float* array(int m, int n) float *p; int i; p=(float*)malloc(m*sizeof(float*); p0=(float*)malloc(m*n*sizeof(float); for(i=1; im; +i) pi=pi-1+n; return p;/*釋放二維數(shù)組所占用的內(nèi)存*/void freearray(float* p) free(*p); free(p);void loaddata() FILE * fp; int
5、 i,j; if(fp=fopen(data.txt,r)=NULL) printf(Cannot open file!n);exit(0); if(feof(fp) printf(data.txt is a empty file!n); fclose(fp);exit(0); if(fscanf(fp,K=%d,Vectordim=%d,datasize=%dn,&K,&Vectordim,&datasize)!=3) printf(load error!n); fclose(fp);exit(0); data=array(datasize,Vectordim+1); for(i=0;ida
6、tasize;i+) dataiVectordim=0; for(j=0;jVectordim;j+) if(j=(Vectordim-1) fscanf(fp,%fn,&dataij); else fscanf(fp,%f ,&dataij); /*printf(%f ,dataij);*/ double euclid_distance(float a,float b,int dim)int i;double sum=0;for(i=0;idim;i+)sum+=pow(ai-bi,2);return sqrt(sum);void getmaxmin(float *a)int i,j;max
7、_column=(float *)malloc(sizeof(float)*Vectordim);min_column=(float *)malloc(sizeof(float)*Vectordim);for(i=0;iVectordim;i+)max_columni=a0i;min_columni=a0i;for(i=0;iVectordim;i+) for(j=1;jmax_columni)max_columni=aji; if(ajimin_columni)min_columni=aji; /*printf(max_column%d=%f, min_column%d=%fn,i,max_
8、columni,i,min_columni);*/ void initializerandom()seed+;srand(unsigned) time(NULL)+seed);float randomreal(float Low, float High) return (float) rand() / RAND_MAX) * (High-Low) + Low; void K_locations_random()int i,j;kmatrix=array(K,Vectordim+1);printf(Randomly the K-locations are initialized as follo
9、ws:n);for(i=0;iK;i+) initializerandom(); kmatrixiVectordim=(float)(i+1); printf(location-%d: ,i+1); for(j=0;jVectordim;j+) kmatrixij=randomreal(min_columni,max_columni);printf(%f, ,kmatrixij); printf(n);int existemptyclass()int *empty,i,j,ef;empty=(int *)malloc(sizeof(int)*K);for(i=0;iK;i+) emptyi=0
10、;for(i=0;idatasize;i+)for(j=1;j=K;j+)if(j=(int)dataiVectordim) emptyj-1+;for(i=0,ef=0;iK;i+) if(0=emptyi) ef=1;return ef;int cluster()int i,j,flag,eflag=1;double closest,d;for(i=0;idatasize;i+)closest=euclid_distance(datai,kmatrix0,Vectordim);flag=1; for(j=1;jK;j+) d=euclid_distance(datai,kmatrixj,V
11、ectordim); if(dclosest) closest=d;flag=j+1; if(dataiVectordim!=(float)flag) eflag=0;dataiVectordim=(float)flag;return eflag;void update_k_location()int i,j,number,m;float *temp;temp=(float *)malloc(sizeof(float)*(Vectordim);for(m=0;mVectordim;m+) tempm=0;for(number=0,i=1;i=K;i+) for(m=0;mVectordim;m
12、+) tempm=0;for(j=0;jdatasize;j+)if(datajVectordim=i) number+;for(m=0;mVectordim;m+)tempm+=datajm; for(m=0;mVectordim;m+)kmatrixi-1m=tempm/number;/*printf(%fn,kmatrixi-1m);*/free(temp);void output()int i,j,m;/*for(m=0;mdatasize;m+)*/*printf(data%dVectordim=%fn,m,datamVectordim);*/ for(i=1;i=K;i+) pri
13、ntf(The following data are clusterd as CLASS %d:n,i); for(j=0;jdatasize;j+) if(datajVectordim=(float)i) for(m=0;m1000)break; time+; update_k_location(); end_flag=cluster();empty_flag=existemptyclass();if(empty_flag) printf(There is a empty class!nSo restart!n);continue;else break;printf(nAfter %ld times calculationn,time);output();freememory();實(shí)驗(yàn)數(shù)據(jù)文件:data.txt用空格分開K=3,Vectordim=3,datasize=15-25 22.2 -35.34 31.2 -14.4 2332.02 -23 24.44 -25.35 36.3 -
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保節(jié)能建筑材料產(chǎn)品全球市場(chǎng)代理合同
- 二零二五年度現(xiàn)代農(nóng)業(yè)項(xiàng)目分包合同協(xié)議書
- 二零二五年度鄉(xiāng)村研學(xué)旅游合作合同協(xié)議
- 2025年度綠色產(chǎn)業(yè)項(xiàng)目質(zhì)押貸款合作協(xié)議
- 2025年度水利工程土石方運(yùn)輸及護(hù)坡合同
- 二零二五年度珠寶品牌授權(quán)及品牌推廣合作協(xié)議
- 二零二五年度高校畢業(yè)生就業(yè)安置與就業(yè)支持服務(wù)合同
- 教師實(shí)習(xí)協(xié)議書二零二五:教師教育實(shí)習(xí)實(shí)訓(xùn)基地合作協(xié)議
- 二零二五年度房屋產(chǎn)權(quán)轉(zhuǎn)讓過(guò)程中產(chǎn)權(quán)變更與登記手續(xù)協(xié)議
- 二零二五年度智慧城市項(xiàng)目經(jīng)理聘用協(xié)議
- GB/T 775.1-2006絕緣子試驗(yàn)方法第1部分:一般試驗(yàn)方法
- GB/T 39965-2021節(jié)能量前評(píng)估計(jì)算方法
- 最新《工會(huì)基礎(chǔ)知識(shí)》試題庫(kù)及答案1000題【完美打印版】
- 化學(xué)核心素養(yǎng)的課堂教學(xué)-基于核心素養(yǎng)的高中化學(xué)教學(xué) 課件
- 體育競(jìng)賽的組織與編排
- 動(dòng)靜脈內(nèi)瘺的圍手術(shù)期護(hù)理-課件
- 辦公家具項(xiàng)目實(shí)施方案、供貨方案
- 初中數(shù)學(xué)人教八年級(jí)下冊(cè)第十九章一次函數(shù)-一次函數(shù)的圖象與性質(zhì)
- 模電數(shù)電面試知識(shí)
- 化工原理-第三版-陳敏恒-課件-華東理工內(nèi)部1
評(píng)論
0/150
提交評(píng)論