数据挖掘试验报告-聚类分析.pdf

上传人:深夜****等你... 文档编号:84231109 上传时间:2023-04-04 格式:PDF 页数:6 大小:276.90KB
返回 下载 相关 举报
数据挖掘试验报告-聚类分析.pdf_第1页
第1页 / 共6页
数据挖掘试验报告-聚类分析.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《数据挖掘试验报告-聚类分析.pdf》由会员分享,可在线阅读,更多相关《数据挖掘试验报告-聚类分析.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、页牌内存7 数据挖掘实验报告(三)聚类分析 姓名:李圣杰 班级:计算机1304 学号:1311610602页牌内存7 一、实验目的 IN掌握k-means聚类方法;2、通过自行编程,对三维空间内的点用k-means方法聚类。二、实验设备 PC台,dev-c+5.11 三.实验内容 1 问题描述:立体空间三维点的聚类.说明:数据放在数据文件中(不得放在程序中),第一行是数据的个数,以后 各行是各个点的x“z坐标。2 设计要求 读取文本文件数据,并用K-means方法输出聚类中心 3.需求分析 k-means算法接受输入量k;然后将n个数据对象划分为k个聚类以便使得 所获得的聚类满足:同一聚类中的

2、对象相似度较高;而不同聚类中的对象相似度 较小。聚类相似度是利用各聚类中对象的均值所获得一个中心对象(引力中心)来进行计算的。k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对象 作为初始聚类中心,而对于所剩下的其它对象,则根据它们与这些聚类中心的相 似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类。然 后,再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值),不断重复 这一过程直到标准测度函数开始收敛为止。一般都釆用均方差作为标准测度函 数,具体定义如下:其中E为数据库中所有对象的均方差之和皿为代表对象的空间中的一个点,m为聚类G的均值(p和m均是多

3、维的)。公式(1)所示的聚类标准,旨在使所获 得的k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的 分开。四.实验步骤 Step 2读取数据组.从 N 个数据对象任意选择 k 个对象作为初始聚类中心:Step 2.循环 Step 3 到 Step 4 直到每个聚类不再发生变化为止:Step 3.根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分;Step 4.重新计算每个(有变化)聚类的均值(中心对象)。代码#inelude#include#include#include int K/Vectordim,datasize

4、/seed=l;页牌内存7 float*data/*kmatrix;float*max_column/*min_column;厂创建维数可指左的二维动态数组 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=l;im;+i)pi=pi-l+n;return p;厂释放二维数组所占用的内存*/void freearray(float*p)free(*p);free(p);void loaddata()F

5、ILE*fp;int ij;if(fp=fopen(l,data.txt,/,r,)=NULL)printf(Cannot open file!n);exit(O);if(feof(fp)printf(data.txt is a empty file!nH);fclose(fp);exit(O);if(fsca nf(fp/K=%ctVectordim=%d,datasize=%dn,/&K,&Vectordim/&datasize)!=3)printfCload error!nH);fclose(fp);exit(O);data=array(datasize/Vectordim+l);for

6、(i=0;idatasize;i+)d at a i Vecto rd i m=0;for(j=0;jVectordim;j+)i f(j=(Ve cto rd i m-1)fscanf(fp,%fn 蔦&dataij);else fscanf(fp/%f,&dataij);/printf(%f,dataij);/double euclid_distance(float a,float bJnt dim)int i;double sum=0;for(i=0;idim;i+)sum+=pow(ai-bi,2);return sqrt(sum);void getmaxmin(float*a)int

7、 i,j;max_colum n=(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=l;jmax_colum ni)max_colum ni=aj页牌内存7 if(ajimin_columni)min_colum ni=aji;/*printf(,max_column%d=%f,min_column%d

8、=%fn,/i/max_columni/i/min_columni);*/void initializersndom()seed+;srand(unsigned)time(NULL)+seed);float randomrealffloat Log float High)return(float)rand()/RAND_MAX)*(High-Low)+Low;void Kocations_random()int ij;kmatrix=array(K,Vectordim+l);prin tf(uRa ndomly the K-lo cati ons are initialized as foll

9、ows:n);for(i=0;iK;i+)initializera ndom();kmatri xiVectordim=(float)(i+l);printf(location%d:J+l);for(j=0;jVectordim;j+)kmatri xij=ra ndomreal(min_columni#ma x_columni);printf(,%printfCXn1);int*empty/i/j/ef;empty=(int*)malloc(sizeof(int)*K);for(i=0;iK;i+)emptyi=O;for(i=0;idatasize;i+)for(j=l;j=K;j+)if

10、(j=(int)dataiVectordim)emptyj-l+;for(i=Ozef=0;iK;i+)if(O=emptyi)ef=l;return ef;int cluster()int i jflag斥flag=l;double closest,d;for(i=0;idatasize;i+)closest=euclid_distance(datai,kmatri xO,V ectordim);flag 二 1;for(j=l;jK;j+)d=euclid_distance(datai/kmatrixj/Vectordi m);if(dclosest)closest 二 d;flag 二

11、j+1;if(dataiVectordim!=(float)flag)eflag=0;data iVectordim=(float)f lag;return eflag;void update_kocation()float*temp;temp=(float*)malloc(sizeof(float)*(Vectordim);for(m=0;mVectordim;m+)tempm=0;for(number=0/i=l;i=K;i+)for(m=0;mVectordim;m+)tempm=O;for(j=0;jdatasize;j+)if(datajVectordim=i)number+;for

12、(m=0;mVectordim;m+)tempm+=datajm;int existemptyclass()int ijumbeom;页牌内存7 for(m=0;mVectordim;m+)kmatri number;/*printf(/free(temp);void outputf)int ij,m;/*for(m=0;mdatasize;m+)/*printf(,data%dVectordim=%fn,/m,dat amVectordim);*/for(i=l;i=K;i+)printf(uThe following data are clusterd as CLASS%d:n,l/i);

13、forj=0;jdatasize;j+)if(datajVectordim=(float)i)for(m=0;m(,datajm);printfCV);void freememory()freearray(kmatrix);freearray(data);free(max_column);free(min_column);main()int end_flag,empty_flag=O;long int time;loaddata);getmaxmin(data);while(l)K_locations_random();en d_flag=cluster();if(existemptyclas

14、s)printf(”There is a empty class!nSo restart!nu);continue;time=0;while(!end_flag)if(time1000)break;time+;update_kjocation();en d_flag=cluster();empty_flag=existemptyclass();if(empty_flag)printf(uThere is a empty class!nSo restart!n);continue;else break;printf(nAfter%ld times calcula tio nn 蔦 time);o

15、utput();freememory);页牌内存7 实验数据文件:data.txt 用空格分开 K=3/Vectordim=3/datasize=15-25 22.2-35.34 31.2-14.4 23 32.02-23 24.44-25.35 36.3-33.34-20.2 27333-28.22-15.66 17.33-23.33 26.3-31.34 16.3-22.544 16.2-32.22 12.2-15.22 22.11-41.241 25.232-35.338-22.22 45.22 23.55-34.22 50.14 30.98 15.23-30.1120.987-32.5

16、 15.3-25.22-38.97 20.1133.22 五、结果截图 押Inelude 材inelude *i a 0.0B296 Mcani*K with return valtw 1 voia rreearrayrioaT*p;渣译沽旻.悌逞:o 0-Kl.?n!H02&?1B-UH*yJ(R:0.-ra 10 13 14 15 16 17 18 pxwai:299.31.042532.J?.After 2 tinea lulltrffln*-U 400X0-2XC00XC-3 L 340X0 IL 220X0-30.HOXl ita ra Are-j-nillire 4X224S32.

17、3.404S16,tO.WOTU lutrd an CLASS 23.CMJOOO 24.0D】16.2W9W 22.110001 3).矽W 匕 folic*?16.12U99.-5.42J7tt.22 OX?31.20(:l 32.020000 2&29 沏 9 12.20VW0 以 230000 T3 foil Mine 3.:is CLASS 2:恪 OftMOO-25.3M00-31200001-1 6WW00-22.544C0!-41241001-32.500000 Tr lolio-dns ctom re cluster4 梶 CUSS 3:-JUA1 z.M 汕丹 22 27.323X0 16.203X1 25.233XC 15.300X0-35.-23.-28.2LQ&M-23.3)0000-32.220001 3538(01-25.219 W M2W01 5Q】3的 3).0)000 2.970)0!20.110X1 购.220001 19 20

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁