码迷,mamicode.com
首页 > 其他好文 > 详细

数据挖掘——学习笔记:关联规则挖掘

时间:2014-10-02 16:33:23      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   io   ar   for   strong   数据   sp   

一、概念

  关联规则挖掘:从食物数据库、关系数据库等大量数据的项集之间发现有趣的、频繁出现的模式、关联和相关性。

  关联规则的兴趣度度量:supportconfidence

  K-项集:包含K个项的集合

  项集的频率:包含项集的事务数

  频繁项集:如果项集的频率大于最小支持度*事务总数,则该项集成为频繁项集

二、关联规则挖掘的分类

  1、根据规则中所处理的值类型:布尔关联规则、量化关联规则

  2、根据规则中涉及的数据维:单维关联规则、多维关联规则

  3、根据规则所涉及的抽象层:单层关联规则、多层关联规则

  4、根据关联挖掘的各种扩充:挖掘最大的频繁模式、挖掘频繁闭项集

三、大型数据库中的关联规则挖掘过程

  1、找出所有频繁项集,大部分的计算都集中在这一步

  2、由频繁项集产生强关联规则,即满足最小支持度和最小置信度的规则

四、找出频繁项集的算法:Apriori algorithm

Apriori algorithm 利用频繁项集的先验知识(prior knowledge),通过逐层搜索的迭代方法,即将K-项集用于探察(K+1)项集,,来穷尽数据集中地所有频繁项集。

To improve the effciency of the level-wise generation of frequent itemsets,an important property called the Apriori property is used to reduce the search space.

Apriori property:All nonempty subsets of a frequent itemset must also be frequent.

Apriori algorithm 步骤:

1. The join step:为了计算Lk,通过Lk-1与自己连接产生候选K-项集的集合,该候选K项集称作Ck

Lk-1中的两个元素L1和L2可以执行连接操作bubuko.com,布布扣的条件是bubuko.com,布布扣

Ck中的频繁集即为Lk

2. The prune step:利用Apriori property减少计算量。

 

Algorithm:Apriori.Find frequent itensets using an iterative level-wise approach based on cadidate generation.

Input:

D,a database of transaction;

min_sup,the minimum support count threshold.

Output:L,frequent itemsets in D.

Method:

  L1=find_frequent_1-itemsets(D);
  for(k=2;Lk-1!=NULL;k++){
    Ck=apriori_gen(Lk-1);
    for each transaction t belont to D{
      Ct=subset(Ck,t);
      for each candidate c belong to Ct
      c.count++;
    }
    Lk={c belong to Ck|c.count >=min_sup}
  }
  return L=UkLk;

procedure apriori_gen(Lk-1:frequent(k-1)-itemsets)
  for each itemset l1 belong to Lk-1
    for eachitemset l2 belong to Lk-1
      if(l1[1]=l2[1] & l1[2]=l2[2] & ... & l1[k-2]=l2[k-2] & l1[k-1]<l2[k-1])then{
      c=l1 join l2;//join sep:generate candidates
      if has_infrequent_subset(c,Lk-1)then
        delete c;//prune step:remove unfruitful candidate
      else add c to Ck;
  }
  return Ck;

procedure has_infrequent_subset(c:candidate k-itemset;;Lk-1:frequent(k-1)-itemsets);//use prior knowledge
  for each (k-1)-subset s of c
    if s not belong to Lk-1 then
      return TRUE;
  return FALSE;

 

 Apriori算法缺点:

  1、对数据进行多次扫描;

  2、产生大量的候选项集;

  3、对候选集的支持度计算繁琐

解决思路:

  1、减少扫描次数;

  2、缩小候选集;

  3.改进支持度计算方法

方法一:Hash-based technique

将每个项集通通过Hash函数映射到Hash标的不同桶中,这样可以通过将桶中的项集计数与最小支持计数相比较先淘汰一部分项集。

方法二:Transaction reduction

不包含任何K项集的事务不可能包含K+1项集。因此这样的项集可以从考虑的项集中被标记或移除

方法三:Partitioning

方法四:sampling

方法五:Dynamic itemset counting

Apriori算法的主要开销是产生大量的候选频繁项集,FP-tree算法可以发现频发模式而不产生候选

 

数据挖掘——学习笔记:关联规则挖掘

标签:style   http   color   io   ar   for   strong   数据   sp   

原文地址:http://www.cnblogs.com/lookdown/p/4002818.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!