还剩7页未读,继续阅读
文本内容:
数据挖掘实验报告
(一)数据预解决姓名:李圣杰班级计算机1304学号
一、实验目的.学习均值平滑,中值平滑,边界值平滑的基本原理.掌握链表的使用方法.掌握文献读取的方法
二、实验设备PC一台dev-c++
5.11
三、实验内容数据平滑假定用于分析的数据包含属性age数据元组中age的值如下按递增序131516161920202122222525252530333335353535364045465270使用你所熟悉的程序设计语言进行编程实现如下功能规定程序具有通用性a使用按箱平均值平滑法对以上数据进行平滑,箱的深度为3b使用按箱中值平滑法对以上数据进行平滑箱的深度为3oc使用按箱边界值平滑法对以上数据进行平滑箱的深度为3O
四、实验原理使用c语言对数据文献进行读取,存入带头节点的指针链表中,同时计数,均值求三个数的平均值,中值求中间的一个数的值边界值将中间的数转换为离边界较近的边界值
五、实验环节代码#includemath.h#inc1udestdio.h#defineDEEP3#ineludestdlib.h#defineDATAFILEdata.txt#defineVPT10〃定义结构体typedefstructchain{intnum;structchain*next;}*data;〃定义全局变量dataheadpq;FILE*fp;«intnumsumcount=0;intij;int*box;voidmean;voidmedain;voidboundary;intmain{〃定义头指针head=datamallocsizeofstructchain;head-next=NULL;/*打开文献文/ofp=fopenDATAFILE/r;if!fpexit0;p=head;while!feoffp{ooq=datamallocsizeofstructchain;q—next=NULL;3fscanfp%d\q-num;/大读一个数据*/op-next=q;p=q;count++;}/*关闭文献*/fc1osefp;〃输出printf“源数据为\n”;printfHK%d箱%1个数据\n”,count/DEEPcount;p=head-next;,count=l;3num=l;whilep!=NULL{»ifcount==lprintf箱%比,1111111;ifcount==DEEP{◎printf%d\np-num;«num++;s»count=l;30}oe1se{printf%dp-num;«count++;so}sp=p-next;osmean;medain;boundsry;oscanfreturn0;0//均值,voidmean{printf“均值平滑后为”为obox=int*mallocsizeofint*num;p=head-next;ocount=l;num=0;osum=0;whilep!=NULL{ifcount==DEEP{ocount=l;sum=sum+p-num;box[num]=sum/DEEP;°sum=0;,num++;°}e1sesum=sum+p—num;acount++;0}s°p=p-next;fori=0;inum;i++{ooprintf\nffi%d:i+l;forj=0;jDEEP;j++oprintf%dbox[i];p=head-next;oPrintf\n离群值为”;swhi1ep!=NULL{ofori=0;inum;i++forj=0;jDEEP j++{oifabsp—num-box[i]intVPT叩rintf\n箱%:1i+1;oprintf%dp-num;00}ep=p-next;}}〃中值voidmedain{oprintf\n中值平滑后为“;§p=head-next;count=l;num=0;intmid;whilep!=NULL{ifcount==DEEP{box[num]=sum;ocount=l;num++;}else{«ifcount==DEEP/21|count==DEEP/2+10ifDEEP%2{◎sum=p-num;°}e1se{ifcount==DEEP/2+1sum=p-num+mid/2;oelseomid=p-num,}count++;*p=p—next;fori=0;inum;i++{printf\n+forj=0;jDEEP;j++叩rintf%d\box[i];//边界值voidboundary{sPrintf\n边界值平滑后为:\n;p=head-next;count=1;obox=int*mallocsizeofinnum=0;whilep!=NULL{oifcount==DEEP{box[2*num+1]=p—num;count=l num++;0}oelse{ifcount==1{3box[2*num]=p-num;◎ocount++;}sp=p-next;},p=head-next count=l;num=0;whi1ep!=NULL{实验数据文献:data.txt用空格分开1315161619202021222235364045465270»ifcount==lprintf箱%d:num;ifp-num-box[2*num]box[2*num+1]-p-num{oprintf%dbox[2火num+1];°}elseoprintf%dbox[2*num];sifcount==DEEP{oprintf\n;count=0;num++;count++;oop=p—next;}°}25252525303333353535
六、结果截图Ci\Uwr»\WE^»tktop\dmJ|-
1.n»网出,,倍I■出文件名ICi\U,e”\李圣亦\XeRop\d■\第一次\
51.exe■出大小Im.S!S2SK1B■隆吟傅I
1.0”。