数据挖掘实验报告-关联规则挖掘参考模板.doc

上传人:doc321 文档编号:15006153 上传时间:2022-03-03 格式:DOC 页数:7 大小:540KB
返回 下载 相关 举报
数据挖掘实验报告-关联规则挖掘参考模板.doc_第1页
第1页 / 共7页
数据挖掘实验报告-关联规则挖掘参考模板.doc_第2页
第2页 / 共7页
数据挖掘实验报告-关联规则挖掘参考模板.doc_第3页
第3页 / 共7页
数据挖掘实验报告-关联规则挖掘参考模板.doc_第4页
第4页 / 共7页
数据挖掘实验报告-关联规则挖掘参考模板.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《数据挖掘实验报告-关联规则挖掘参考模板.doc》由会员分享,可在线阅读,更多相关《数据挖掘实验报告-关联规则挖掘参考模板.doc(7页珍藏版)》请在三一文库上搜索。

1、数据挖掘实验报告(二)关联规则挖掘姓名:李圣杰班级:计算机1304学号:1311610602 1 / 7一、实验目的1. 1. 掌握关联规则挖掘的Apriori算法;2. 将Apriori算法用具体的编程语言实现。二、实验设备 PC一台,dev-c+5.11三、实验内容根据下列的Apriori算法进行编程: 四、实验步骤1.编制程序。2.调试程序。可采用下面的数据库D作为原始数据调试程序,得到的候选1项集、2项集、3项集分别为C1、C2、C3,得到的频繁1项集、2项集、3项集分别为L1、L2、L3。代码#include #include#define D 4 /事务的个数#define Min

2、SupCount 2 /最小事务支持度数void main() char a45=A,C,D,B,C,E,A,B,C,E,B,E; char b20,d100,t,b210010,b2110010; int i,j,k,x=0,flag=1,c20=0,x1=0,i1=0,j1,counter=0,c1100=0,flag1=1,j2,u=0,c2100=0,n20,v=1;int count100,temp; for(i=0;iD;i+) for(j=0;aij!=0;j+) /用来判断之前保存的是否和aij一样,不一样就保存,一样就不保存 for(k=0;kx;k+) if(bk!=aij

3、) ; else flag=0;break; /用来判断是否相等 if(flag=1) bx=aij; x+; else flag=1; /计算筛选出的元素的支持度计数 for(i=0;iD;i+) for(j=0;aij!=0;j+) for(k=0;kx;k+) if(aij=bk) ck+;break; /对选出的项集进行筛选,选出支持度计数大于等于2的,并且保存到dx1数组中 for(k=0;k=MinSupCount) dx1=bk;countx1=ck; x1+; /对选出的项集中的元素进行排序 for(i=0;ix1-1;i+) for(j=0;jdj+1) t=dj;dj=dj

4、+1;dj+1=t;temp=countj;countj=countj+1;countj+1=temp; /打印出L1 printf(L1 elements are:n); for(i=0;ix1;i+) printf(%c = %d n,di,counti); /计算每一行的元素个数,并且保存到n数组中 for(i=0;iD;i+) for(j=0;aij!=0;j+); ni=j; /对a数组的每一行进行排序 for(i=0;iD;i+) for(j=0;jni-1;j+) for(k=0;kaik+1) t=aik; aik=aik+1; aik+1=t; /把L1中的每一个元素都放在b

5、2i0中 j1=x1; for(i=0;ij1;i+) b2i0=di; /把L1中的元素进行组合,K=2开始,表示x1个元素选K个元素的组合 for(k=2;b200!=0;k+) /u是用来计数组合总数的 u=0;v=1;/v 是用来在进行输出各种组合的标识数 v=1 说明正在进行输出 for(i=0;i100;i+) c2i=0; for(i=0;ij1;i+) for(i1=i+1;i1j1;i1+) for(j=0;jk-2;j+) if(b2ij!=b2i1j) flag1=0;break; /进行组合的部分 if(flag1=1&b2ik-2!=b2i1k-2) for(j2=0

6、;j2k-1;j2+) b21uj2=b2ij2; b21uk-1=b2i1k-2; u+; flag1=1; counter=0; for(i=0;iD;i+) /a数组有5行元素 for(i1=0;i1u;i1+) / 代表x1个元素选K个元素的所有组合总数 for(j1=0;j1k;j1+) /K 代表一个组合中的元素个数 for(j=0;aij!=0;j+) /逐个比较每一行的元素 if(aij=b21i1j1) counter+; if(counter=k) c2i1+; /把每种组合数记录在c2数组中counter=0; j1=0;temp=0;/这里的temp 是用来分行/对u种情况进行选择,选出支持度计数大于2的*/ for(i=0;i=MinSupCount) if(v=1) printf(L%d elements are:n,k); v=0; printf(); for(j=0;jk;j+) /输出每种组合k 个元素 b2j1j=b21ij; printf(%c,b2j1j); j1+; printf(b); printf( = %d n,c2i);temp+; b2j10=0; 五、结果截图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1