解释基于apriori算法的关联规则挖掘C语言版

上传人:宝路 文档编号:23919093 上传时间:2017-12-04 格式:DOC 页数:22 大小:88.51KB
返回 下载 相关 举报
解释基于apriori算法的关联规则挖掘C语言版_第1页
第1页 / 共22页
解释基于apriori算法的关联规则挖掘C语言版_第2页
第2页 / 共22页
解释基于apriori算法的关联规则挖掘C语言版_第3页
第3页 / 共22页
解释基于apriori算法的关联规则挖掘C语言版_第4页
第4页 / 共22页
解释基于apriori算法的关联规则挖掘C语言版_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《解释基于apriori算法的关联规则挖掘C语言版》由会员分享,可在线阅读,更多相关《解释基于apriori算法的关联规则挖掘C语言版(22页珍藏版)》请在金锄头文库上搜索。

1、#include#include#includeusing namespace std;char shop10; /用于存放每一种商品int sn; /商品信息(商品种类数)int tr100100,l100,tn; /tr 记录事务信息(数字化之后的事务信息) ,l 记录每条事务包含的商品数,tn 记录总共有多少条事务记录int min_sup=2; /最小支持度计数float min_conf=0.7f; /最小置信度阈值typedef structint * *p; /记录 i 项集的所有内容(比如 1 项集的内容,2 项集的内容,或者 3 项集的内容等等)int * num; /各个项

2、集的支持计数(比如 1 项集中的每一条记录的支持度计数为多少,或者 2 项集中的每一条记录的支持度计数为多少等等)int i; /项集的项数(比如 1 项集,或者为 2 项集,或者为 3 项集)int n; /项集的数目(比如得到的 1 项集中有多少条记录,或者为 2 项集中有多少条记录,或者 3 项集中有多少条记录) Large;void Input()ifstream f1;f1.open(input.txt);int i,j,k,id;char c;f1sn; /用 sn 记录商品种类数for(i=1;ishopi;f1tn; /用 tn 记录总共有多少条事务记录for(i=1;iid;

3、 /id 记录事务编号f1lid; /记录编号为 id 的事务中总共有多少个商品for(j=1;jc;for(k=1;kt)right=mid-1;elseleft=mid+1;*/return false;Large find_f1() /产生 L1Large C1,L1;int i,k;C1.i=1;C1.n=0;for(i=1;i=min_sup) /求 C1 中的频繁项目集,过滤掉 C1 中非频繁项集if(L1.n=0)L1.n=1;L1.p=(int * *)malloc(L1.n*sizeof(int *);L1.num=(int *)malloc(L1.n*sizeof(int)

4、;*( L1.p+L1.n-1)=(int *)malloc(L1.i*sizeof(int);elseL1.n+;L1.p=(int * *)realloc(L1.p,L1.n*sizeof(int *);L1.num=(int *)realloc(L1.num,L1.n*sizeof(int);*(L1.p+L1.n-1)=(int *)malloc(L1.i*sizeof(int);*(*( L1.p+L1.n-1)+0)=*(*( C1.p+i)+0);*(L1.num+L1.n-1)=*(C1.num+i);cout*(*(Lp.p+j)+k)*(c+k)=*(*(Lp.p+j)+k

5、);*(c+k+1)=*(*(Lp.p+i)+k);else*(c+k)=*(*(Lp.p+i)+k);*(c+k+1)=*(*(Lp.p+j)+k);if(In_subset(Lp,c) /通过剪枝运算if(Cn.n=0)Cn.n=1;Cn.p=(int * *)malloc(Cn.n*sizeof(int *);Cn.num=(int *)malloc(Cn.n*sizeof(int);*(Cn.p+Cn.n-1)=(int *)malloc(Cn.i*sizeof(int);elseCn.n+;Cn.p=(int * *)realloc(Cn.p,Cn.n*sizeof(int *);C

6、n.num=(int *)realloc(Cn.num,Cn.n*sizeof(int);*(Cn.p+Cn.n-1)=(int *)malloc(Cn.i*sizeof(int);for(k=0;k=min_conf)/检查是否大于等于最小置信度阈值for(k=0;k;for(k=0;k=min_sup) /与限值(最小支持度计数)比较if(*(L+k).n=0)(*(L+k).n=1;(*(L+k).p=(int * *)malloc(*(L+k).n*sizeof(int *);(*(L+k).num=(int *)malloc(*(L+k).n*sizeof(int);*(*(L+k)

7、.p+(*(L+k).n-1)=(int *)malloc(*(L+k).i*sizeof(int);else(*(L+k).n+;(*(L+k).p=(int * *)realloc(*(L+k).p,(*(L+k).n*sizeof(int *);(*(L+k).num=(int *)realloc(*(L+k).num,(*(L+k).n*sizeof(int);*(*(L+k).p+(*(L+k).n-1)=(int *)malloc(*(L+k).i*sizeof(int);for(j=0;jCk.i;j+) /将满足条件的候选集中的当前记录的内容赋给 k 项频繁集 L*(*(*(L

8、+k).p+(*(L+k).n-1)+j)=*(*(Ck.p+i)+j);*(*(L+k).num+(*(L+k).n-1)=*(Ck.num+i);/将该记录对应的支持度计数记录在 k 项频繁集 L 的 num 数组的对应位置if(*(L+k).n=0)break;lk+;coutLk:endl;for(i=0;i(*(L+k).n;i+)for(j=0;j(*(L+k).i;j+)coutshop*(*(*(L+k).p+i)+j) ;cout*(*(L+k).num+i)endl;Rules(L,lk);int main()f();return 0;所用数据格式说明:黄焖鸡米饭加盟 http:/ cg3hwI6BQCRs

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号