apriori算法产生频繁项会生成关联规则

由频繁项产生关键规则函数

void guanlian() //确定关联规则并链接 

 {int r=0; //

 for(int i=0;pinfanxiang[i][0]!="";i++) //遍历每个频繁项 

  {int k=0; //用于记录当前频繁项长度 

  for(k=0;pinfanxiang[i][k]!="";k++); //算出当前频繁项长度 

  for(int j=0,a=0;j<k-1;j++) //子集阶数循环,便于确定子集阶数查

   for(a;pinfanxiang[a][j]!="";a++) //遍历每个频繁项找出子集  

    {if(pinfanxiang[a][j+1]!="") //判断是否超出范围子集阶数范围 

     break; //超出结束判断 

    int shu=0; //记录符合子项维度(确定阶数后要查看是否是当前阶数子集) 

    for(int c=0;pinfanxiang[i][c]!="";c++) //遍历拿出的一个频繁项 

     for(int b=0;pinfanxiang[a][b]!="";b++) //遍历拿出的子频繁项 

      if(pinfanxiang[a][b]==pinfanxiang[i][c])//判断子集相符维度 

       {shu++;c++; //维度+1,查找数据+1 

       }

    if(shu==j+1) //判断是否达到维度 (达到则为当前阶数子集)

     {if(1.0*pinfanjishu[i]/pinfanjishu[a]>=confidence) //判断是否满足强关联规则 (置信度是否达到)

      {for(int m=0;pinfanxiang[a][m]!="";m++) //达到将其子集逐个数据放入强关联关系库 

       guanlian1[r][m]=pinfanxiang[a][m]; //入库(赋值入数组) 

      for(int x=0,m=0;pinfanxiang[i][x]!="";x++) //将其剩余部分放入关联关系库 遍历拿出项数据 

       for(int y=0;;y++) //遍历子集项 数据 

        {if(pinfanxiang[i][x]==pinfanxiang[a][y]) //判断子集中是否已经存在 

         break; //存在跳出一层遍历 

        if(pinfanxiang[a][y]=="") //如果找完一行未发现有存在,将其给关联项 

         {guanlian2[r][m++]=pinfanxiang[i][x]; //蒋未找到的数据给关联项 

         break; //结束循环 

         }

        }

      r++;  

      }

     }

    }

  } 

 }

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值