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

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

ID:18416535

大小:70.50 KB

页数:10页

时间:2018-09-17

解释基于apriori算法的关联规则挖掘c语言版_第1页
解释基于apriori算法的关联规则挖掘c语言版_第2页
解释基于apriori算法的关联规则挖掘c语言版_第3页
解释基于apriori算法的关联规则挖掘c语言版_第4页
解释基于apriori算法的关联规则挖掘c语言版_第5页
资源描述:

《解释基于apriori算法的关联规则挖掘c语言版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#includeusingnamespacestd;charshop[10];//用于存放每一种商品intsn;//商品信息(商品种类数)inttr[100][100],l[100],tn;//tr记录事务信息(数字化之后的事务信息),l记录每条事务包含的商品数,tn记录总共有多少条事务记录intmin_sup=2;//最小支持度计数floatmin_conf=0.7f;//最小置信度阈值typedefstruct{int**p;//记录i项集的所有内容(比如1项集的内容,

2、2项集的内容,或者3项集的内容等等)int*num;//各个项集的支持计数(比如1项集中的每一条记录的支持度计数为多少,或者2项集中的每一条记录的支持度计数为多少等等)inti;//项集的项数(比如1项集,或者为2项集,或者为3项集)intn;//项集的数目(比如得到的1项集中有多少条记录,或者为2项集中有多少条记录,或者3项集中有多少条记录)}Large;voidInput(){ifstreamf1;f1.open("input.txt");inti,j,k,id;charc;f1>>sn;//用sn记录商品种类数for(i=1;i<=sn;i++)//每一种

3、商品名称放入shop数组{f1>>shop[i];}f1>>tn;//用tn记录总共有多少条事务记录for(i=1;i<=tn;i++)//将每条事务中的每个商品对应在shop数组中的位序记录在数组tr中(相当于把商品的字符名称改为整形名称){f1>>id;//id记录事务编号f1>>l[id];//记录编号为id的事务中总共有多少个商品for(j=1;j<=l[id];j++){f1>>c;for(k=1;k<=sn;k++){if(shop[k]==c){break;}}tr[id][j]=k;}}f1.close();}boolsubset(intt,in

4、tk)//判断名称为t的商品是否在事务k中{intmid,right,left;left=1;right=l[k];for(inti=left;i<=right;i++){if(tr[k][i]==t){returntrue;}}/*while(left<=right){mid=(left+right)/2;if(tr[k][mid]==t){returntrue;}if(tr[k][mid]>t){right=mid-1;}else{left=mid+1;}}*/returnfalse;}Largefind_f1()//产生L1{LargeC1,L1;inti

5、,k;C1.i=1;C1.n=0;for(i=1;i<=sn;i++)//产生C1{if(C1.n==0)//初始化C1{C1.n=1;C1.p=(int**)malloc(C1.n*sizeof(int*));C1.num=(int*)malloc(C1.n*sizeof(int));*(C1.p+C1.n-1)=(int*)malloc(C1.i*sizeof(int));}else{C1.n++;C1.p=(int**)realloc(C1.p,C1.n*sizeof(int*));C1.num=(int*)realloc(C1.num,C1.n*size

6、of(int));*(C1.p+C1.n-1)=(int*)malloc(C1.i*sizeof(int));}*(*(C1.p+C1.n-1)+0)=i;//将名称为i的商品放在数组C1.p中*(C1.num+C1.n-1)=0;//将名称为i的商品对应的数量放入数组C1.num中for(k=1;k<=tn;k++){if(subset(i,k)){*(C1.num+C1.n-1)=*(C1.num+C1.n-1)+1;//如果名称为i的商品存在于事务K中,将数组C1.num中对应的数量加1}}}L1.i=1;L1.n=0;for(i=0;i

7、){if(*(C1.num+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));*(L1.p+L1.n-1)=(int*)malloc(L1.i*sizeof(int));}else{L1.n++;L1.p=(int**)realloc(L1.p,L1.n*sizeof(int*));L1.num=(int*)realloc(L1.num,L1.n*si

8、zeof(int));*

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。