数据挖掘实验报告聚类分析(共7页).doc
《数据挖掘实验报告聚类分析(共7页).doc》由会员分享,可在线阅读,更多相关《数据挖掘实验报告聚类分析(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数据挖掘实验报告(三)聚类分析姓名:李圣杰班级:计算机1304学号: 一、实验目的1、 掌握k-means聚类方法;2、 通过自行编程,对三维空间内的点用k-means方法聚类。二、实验设备 PC一台,dev-c+5.11三、实验内容 1.问题描述:立体空间三维点的聚类.说明:数据放在数据文件中(不得放在程序中),第一行是数据的个数,以后各行是各个点的x,y,z坐标。2.设计要求读取文本文件数据,并用K-means方法输出聚类中心3. 需求分析k-means 算法接受输入量k;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不
2、同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。k-means算法的工作过程说明如下:首先从n个数据对象任意选择k个对象作为初始聚类中心,而对于所剩下的其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类。然后,再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值),不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数,具体定义如下: (1)其中E为数据库中所有对象的均方差之和,p为代表对象的空间中的一个点,mi为聚类Ci的均值(p和mi均是多维的)。公式
3、(1)所示的聚类标准,旨在使所获得的k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。四、实验步骤Step 1.读取数据组,从N个数据对象任意选择k个对象作为初始聚类中心;Step 2.循环Step 3到Step 4直到每个聚类不再发生变化为止;Step 3.根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分;Step 4.重新计算每个(有变化)聚类的均值(中心对象)。代码专心-专注-专业#include #include #include #include int K,Vectordim,datasize,seed
4、=1;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=1; im; +i) pi=pi-1+n; return p;/*释放二维数组所占用的内存*/void freearray(float* p) free(*p); free(p);void load
5、data() FILE * fp; int 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,Vect
6、ordim+1); for(i=0;idatasize;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
7、(float *a)int i,j;max_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, mi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 挖掘 实验 报告 聚类分析
限制150内