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

一、概念

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

  关联规则的兴趣度度量: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可以执行连接操作的条件是

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算法可以发现频发模式而不产生候选

时间: 2024-08-09 22:00:01

数据挖掘——学习笔记:关联规则挖掘的相关文章

[数据挖掘课程笔记]关联规则挖掘

两种度量: 支持度(support)  support(A→B) = count(AUB)/N (N是数据库中记录的条数) 自信度(confidence)confidence(A→B) = count(AUB)/count(A) 关联规则挖掘的基本两个步骤: 1.找出所有的频繁项集 2.由频繁项集产生强关联规则 由于整个数据库十分庞大,所以对第一步来说,若使用穷举法,搜索空间将是2d,d是项的个数.所以优化算法主要需要优化第一步.而频繁项集里的项的数目远小于数据库数据的数目,所以,在第二步中,我

数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方法,它描述的是在一个事物中物品间同时出现的规律的知识模式,现实生活中,比如超市购物时,顾客购买记录常常隐含着很多关联规则,比如购买圆珠笔的顾客中有65%也购买了笔记本,利用这些规则,商场人员可以很好的规划商品摆放问题: 为叙述方便,设R= { I1,I2 ......Im} 是一组物品集,W 是一组事

数据挖掘算法之关联规则挖掘(一)---apriori算法

关联规则挖掘算法在生活中的应用处处可见,几乎在各个电子商务网站上都可以看到其应用 举个简单的例子 如当当网,在你浏览一本书的时候,可以在页面中看到一些套餐推荐,本书+有关系的书1+有关系的书2+...+其他物品=多少¥ 而这些套餐就很有可能符合你的胃口,原本只想买一本书的你可能会因为这个推荐而买了整个套餐 这与userCF和itemCF不同的是,前两种是推荐类似的,或者你可能喜欢的商品列表 而关联规则挖掘的是n个商品是不是经常一起被购买,如果是,那个n个商品之中,有一个商品正在被浏览(有被购买的

浅谈数据挖掘中的关联规则挖掘

数据挖掘是指以某种方式分析数据源,从中发现一些潜在的有用的信息,所以数据挖掘又称作知识发现,而关联规则挖掘则是数据挖掘中的一个很重要的 课题,顾名思义,它是从数据背后发现事物之间可能存在的关联或者联系.举个最简单的例子,比如通过调查商场里顾客买的东西发现,30%的顾客会同时购买床 单和枕套,而购买床单的人中有80%购买了枕套,这里面就隐藏了一条关联:床单—>枕套,也就是说很大一部分顾客会同时购买床单和枕套,那么对于商 场来说,可以把床单和枕套放在同一个购物区,那样就方便顾客进行购物了.下面来讨论

数据挖掘学习笔记一:引论

数据挖掘(又称从数据中发现知识,KDD) 例1.1 数据挖掘把大型数据集转换成知识.Google的Flu Trends(流感趋势)使用特殊的搜索项作为流感活动的指示器.它发现了搜索流感相关信息的人数与实际具有流感症状的人数之间的紧密联系.当与流感相关的所有搜索都聚集在一起时,一个模式就出现了.使用聚集的搜索数据,Google的Flu Trends可以比传统的系统早两周对流感活动作出评估. 数据挖掘 == 数据中的知识发现.只是发现的过程由一下步骤的迭代序列组成: 数据清理(消除噪声和删除不一致数

数据挖掘算法之关联规则挖掘(二)FPGrowth算法

之前介绍的apriori算法中因为存在许多的缺陷,例如进行大量的全表扫描和计算量巨大的自然连接,所以现在几乎已经不再使用 在mahout的算法库中使用的是PFP算法,该算法是FPGrowth算法的分布式运行方式,其内部的算法结构和FPGrowth算法相差并不是十分巨大 所以这里首先介绍在单机内存中运行的FPGrowth算法 还是使用apriori算法的购物车数据作为例子,如下图所示: TID为购物车项的编号,i1-i5为商品的编号 FPGrowth算法的基本思想是,首先扫描整个购物车数据表,计算

数据挖掘学习笔记 多维数据模型-数据立方体

多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing). 其中,每个维对应于模式中的一个或一组属性,而每个单元存放某种聚集度量值,如count或sum.数据立方体提供数据的多维视图,并允许预计算和快速访问汇总数据. <数据挖掘:概念与技术>中例举如下模型 数据立方体允许以多维数据建模和观察.它由维和事实定义.维是关于一个组织想要记录的视角或观点.每个维都有一

数据挖掘学习笔记:分类器(二)

人工神经网络(ANN) ANN是有相互连接的结点和有项链构成. (1)感知器.感知器的一般模型如下所示

学习笔记:Oracle dul数据挖掘 导出Oracle11G数据文件坏块中表中

试验模拟导出Oracle 11G数据库中数据文件坏块中表中的数据 以前一直以为dul对应的版本只能恢复最高的数据库版本一致,今天测试发现dul 10可以恢复11g最新版的数据库.模拟环境 SQL> select * from v$version; BANNER -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition