数据挖掘实验报告-关联规则挖掘.docx

上传人:scccc 文档编号:12688671 上传时间:2021-12-05 格式:DOCX 页数:8 大小:141.63KB
返回 下载 相关 举报
数据挖掘实验报告-关联规则挖掘.docx_第1页
第1页 / 共8页
数据挖掘实验报告-关联规则挖掘.docx_第2页
第2页 / 共8页
数据挖掘实验报告-关联规则挖掘.docx_第3页
第3页 / 共8页
数据挖掘实验报告-关联规则挖掘.docx_第4页
第4页 / 共8页
数据挖掘实验报告-关联规则挖掘.docx_第5页
第5页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

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

2、D 4 / 事务的个数#define MinSupCount 2 / 最小事务支持度数void main()char a45='A','C','D','B','C','E','A','B','C','E','B','E'charb20,d100,t,b210010,b2110010;int i,j,k,x=0,flag=1,c20=0,x1=0,i1=0,j1,counter =0,c1100=0,fla

3、g1=1,j2,u=0,c2100=0,n2 0,v=1;int count100,temp;for(i=0;i<D;i+)for(j=0;aij!='0'j+)/ 用来判断之前保存的是否 和 aij 一样,不一样就保存,一样就不保 存for(k=0;k<x;k+)if(bk!=aij) ;elseflag=0;break;/ 用来判断是否相等if(flag=1)bx=aij;x+;else flag=1;/ 计算筛选出的元素的支持度计数 for(i=0;i<D;i+)for(j=0;aij!='0'j+) for(k=0;k<x;k+)

4、 if(aij=bk)ck+;break;/ 对选出的项集进行筛选,选出支持度 计数大于等于 2 的,并且保存到 dx1 数组 中for(k=0;k<x;k+)if(ck>=MinSupCount)dx1=bk; countx1=ck; x1+;/ 对选出的项集中的元素进行排序 for(i=0;i<x1-1;i+)for(j=0;j<x1-i-1;j+)if(dj>dj+1)t=dj;dj=dj+1;dj+1=t;temp=countj;countj=countj+1;count j+1=temp;/ 打印出 L1printf("L1 elements

5、are:n");for(i=0;i<x1;i+)printf("%c = %dn",di,counti);/ 计算每一行的元素个数,并且保存到n 数组中for(i=0;i<D;i+)for(j=0;aij!='0'j+);ni=j;/ 对 a 数组的每一行进行排序for(i=0;i<D;i+)for(j=0;j<ni-1;j+)for(k=0;k<ni-j-1;k+)if(aik>aik+1)t=aik;aik=aik+1; aik+1=t;/ 把 L1 中的每一个元素都放在 b2i0 中j1=x1;for(i=

6、0;i<j1;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;i<100;i+)c2i=0; for(i=0;i<j1;i+)for(i1=i+1;i1<j1;i1+)for(j=0;j<k-2;j+)if(b2ij!=b2i1j)flag1=0;break;/ 进行组合的部分if(flag1=1&&b2ik

7、-2!=b2i1k-2) for(j2=0;j2<k-1;j2+) b21uj2=b2ij2;b21uk-1=b2i1k-2;u+;flag1=1;counter=0;for(i=0;i<D;i+) /a 数组有 5 行元 素 for(i1=0;i1<u;i1+) / 代表 x1 个元素选 K 个元素的所有组合总数for(j1=0;j1<k;j1+) /K 代表一个组合中的元素个数for(j=0;aij!='0'j+) / 逐个比较每一行的if(aij=b21i1j1) counter+;if(counter=k) c2i1+;/ 把每种组合数记录在 c

8、2 数组中counter=0;j1=0;temp=0;/ 这里的 temp 是用来分行/ 对 u 种情况进行选择,选出支持度计数大于 2 的 */for(i=0;i<u;i+)if(c2i>=MinSupCount)if(v=1)printf("L%delements are:n",k);v=0;printf("");for(j=0;j<k;j+) / 输 出 每种组合 k 个元素b2j1j=b21ij;printf("%c,",b2j1j);j1+;printf("b");printf(" = %d n",c2i); temp+;b2j10='0'五、结果截图

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

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


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