数据挖掘之第6章 关联规则:基本概念和算法

基本概念

  • X->Y ,其中X和Y是不相交的项集

  • 支持度:给定数据集的频繁程度

    • 支持度很低的规则可能只是偶然出现
    • 通常用来删去那些无意义的规则
  • 置信度:确定Y在包含X的事务中出现的频繁程度

    • 通过规则进行推理具有可靠性
  • 关联规则不必然蕴含因果关系,只表示前件和后件中的项明显地同时出现

  • 从数据集提取的可能规则的总数很高,事先对规则进行剪枝,减少对支持度和置信度不必要的计算

提高算法性能

  • 分解成两个主要的子任务:
    • 频繁项集产生:发现满足最小支持度阈值的所有项集
    • 规则产生:从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称作强规则

6.2 频繁项集的产生

  • 降低候选项集的数目(M) —— 先验原理(不用计算支持度值而删除某些候选集的有效方法)
  • 减少比较次数
    • 替代将每个候选项集与每个事务相匹配,可以使用更高级的数据结构
      • 存储候选项集
      • 压缩数据集

6.2.1 先验原理

  • 使用支持度度量,减少频繁
  • 先验原理:如果一个项集是频繁的,则它的所有子集一定也是频繁的。
  • 反单调性:一个项集的支持度决不会超过它的子集的支持度
    • 任何具有反单调性的度量都能直接结合到挖掘算法中,具有对候选项集指数搜索空间进行有效地剪枝

6.2.2 Apriori算法的频繁项集产生

  • 有两个重要的特点:
    • 逐层算法:从频繁1-项集到最长的频繁项集,每次遍历项集格中的一层
    • 使用 产生-测试 策略来发现频繁项集

6.2.3 候选的产生与剪枝

  • aprior-gen函数通过两个操作产生候选项集:
    • 候选项集的产生:
      • 产生方法:

        • 蛮力方法:将所有的k-项集都看作可能的候选,然后使用候选剪枝除去不必要的候选
          数据挖掘之第6章 关联规则:基本概念和算法_第1张图片
      • F_k-1 * F1方法: 用其他频繁项来扩展每个频繁(k-1) 项集、

        • 确保每个频繁项集中的项以字典序存储 :避免重复的产生候选项集(k-1 项集X只用字典序比X中所有的项都大的频繁项进行扩展)
        • 还会产生大量不必要的候选,k项集 是频繁项集要满足其中所有的k-1子集都是频繁项集,有时候合并的时候可能不满足。
      • F_k-1 * F_k-1 方法:

        • 表明了候选项产生过程的完全性和使用字典序避免重复的候选的优点
          数据挖掘之第6章 关联规则:基本概念和算法_第2张图片
          数据挖掘之第6章 关联规则:基本概念和算法_第3张图片
    • 候选项集剪枝
      • 算法必须确定它的所有真子集 X-{i_j}是否都是频繁的,如果其中一个是非频繁的,则X将会被立即剪枝。
      • 如果k个子集中的m个用来产生候选项集,则在候选项集剪枝时只需要检查剩下的k-m个子集。

6.2.4 支持度计数

  • 方法一:将每个事务与所有的候选项集进行比较,并且更新包含在事务中的候选项集的支持度计数。但这种方法计算昂贵,尤其当事务和候选项集的数目都很大时。数据挖掘之第6章 关联规则:基本概念和算法_第4张图片
  • 方法二:枚举每个事务所包含的项集
    • 使用前缀结构系统地枚举事务所包含的项集
    • 使用Hash树来有效地进行匹配操作:
      • 将候选项集构建成一棵候选Hash树
      • 将事务通过hash函数一直到子节点,在进行比较。

6.2.5 计算复杂度(四个因素)

  • 支持度阈值

    • 支持度阈值降低,频繁项集增多
    • 支持度阈值降低,频繁项集的最大长度增加
  • 项数(维度)

    • 项数 增多,需要更多的空间
    • 计算量和I/O开销将增加
  • 事务数

    • 反复扫描数据集,运行时间随事务数增加而增加
  • 事务的平均宽度

    • 频繁项集的最大长度随事务平均宽度增加而增加
    • 随着事务宽度的增加,事务中将包含更多的项集,这将增加支持度计数时Hash树的遍历次数。
  • Apriori算法的时间复杂度
    p214

6.3 规则产生

  • 从给定的频繁项集中提取关联规则

6.3.1 基于置信度的剪枝

  • 不像支持度度量,置信度不具有任何单调性
  • 定理6.2: 如果规则X——> Y-X 不满足置信度阈值,则形如X’ ——> Y-X’ 的规则一定也不满足置信度阈值,其中X’是X的子集。
  • Apriori算法使用逐层方法来产生关联规则,每层对应于规则后件中的项数

6.4 频繁项集的紧凑表示

  • 由事务数据集产生的频繁项集的数量可能非常大,因此,要找出具有代表性的项集。

6.4.1 极大频繁项集

  • 它的直接超集都不是频繁的
  • 极大频繁项集形成了可以导出所有频繁项集的最小的项集的集合
  • 但是不包含它们子集的支持度信息,因此需要再一遍扫描数据集,来确定那些非极大的频繁项集的支持度计数。

6.4.2 闭频繁项集

  • 闭项集提供了频繁项集的一种最小表示,该表示不丢失支持度信息
  • 闭项集: 项集X是闭的,如果它的直接超集都不具有和它相同的支持度计数。
  • 闭频繁项集:一个项集是闭频繁项集,如果它是闭的,并且它的支持度大于或等于最小支持度阈值。
  • 非闭频繁项集的支持度一定等于它的超集的最大支持度。
  • 算法:从最大的频繁项集到最小的频繁项集【项集的长度】
  • 关联规则X——> Y是冗余的,如果存在另一个关联规则X’——> Y’使得两个规则的支持度和置信度都相同,其中X是X’的子集,Y是Y’的子集。 如果使用闭频繁项集产生规则,则不会产生这样的冗余规则。

数据挖掘之第6章 关联规则:基本概念和算法_第5张图片

6.5 产生频繁项集的其他方法

  • 项集格遍历

    • 一般到特殊与特殊到一般
      • Apriori算法使用“一般到特殊”的搜索策略,合并两个频繁项集k-1 项集得到候选k 项集
      • “特殊到一般”:对于发现稠密事务中的极大频繁项集是有用的,可以使用先验原理剪掉极大频繁项集的所有子集,如果候选k项集是非频繁的,则必须在下一迭代考察它所有k-1 项子集。
      • 结合“一般到特殊”和“特殊到一般”的搜索策略,需要更多的空间存储候选项集,但是有助于加快确定频繁项集边界。
  • 等价类

    • 根据项集的前缀或后缀来定义。如果两个项集属于同一个等价类,它们共享长度为k的相同前缀或后缀。
  • 宽度优先与深度优先

    • Apriori算法采用宽度优先的方法遍历格。
    • 也可以用深度优先的方式遍历项集格:用于发现极大频繁项集的算法,比宽度优先方法更快地检测到频繁项集边界。还允许使用不同的基于项集支持度的剪枝方法。
  • 事务数据集的表示

    • 水平数据布局:许多关联规则挖缺算法(包括Apriori)都采用这种表示法
    • 垂直数据布局:候选项集的支持度通过取其子项集TID列表的交得到。但是TID列表的初始集合可能太大,以致无法放进内存。
      数据挖掘之第6章 关联规则:基本概念和算法_第6张图片

6.6 FP增长算法

6.6.1 FP树表示法

  • 把每个事务映射到FP树中的一条路径来构造
  • 由于购物篮数据的事务常常共享一些共同项,已经FP树的大小比未压缩的数据小

6.6.2 FP增长算法的频繁项集产生

  • FP增长是一种以自底向上方式探索树
  • 采用分治策略将一个问题分解为较小的子问题【分治方法!!】
  • 通过将前缀路径转化为条件FP树,来发现特定后缀结尾的频繁项集。
  • 节点e的FP条件树通过以下步骤得到:
    • 更新前缀路径上的支持度计数,因为某些计数包括那些不含项e的事务。
    • 删除e的结点,修改前缀路径。
    • 更新沿前缀路径上的支持度计数之后,某些项可能不再是频繁的,可以删掉。
  • FP增长展示了如何使用事务数据集的压缩表示来有效地产生频繁项集。

6.7 关联模式的评估

  • 第一组标准:使用客观兴趣度度量,包括:支持度、置信度、相关性
  • 第二组标准:通过主观论据建立,需要来自领域专家的大量先验信息。

6.7.1 兴趣度的客观度量

  • 不依赖于领域,只需要最小限度用户的输入信息,不需要通过设置阈值来过滤低质量的模式

  • 常常基于相依表中列出的频度计数来计算

  • 支持度的缺点:雨多潜在的有意义的模式由于包含支持度小的项而被删去。

  • 置信度的缺点:忽略了规则后件中项集的支持度

  • 兴趣因子:
    数据挖掘之第6章 关联规则:基本概念和算法_第7张图片
    在这里插入图片描述

    • 注: lift,I(A,B)是等价的,都有以上结论!
  • 兴趣度度量的对称与不对称的客观度量:
    数据挖掘之第6章 关联规则:基本概念和算法_第8张图片

  • 客观度量的一致性 : 当不同的度量应用到一组关联模式时是否会产生类似的有序结果。

  • 客观度量的性质:
    - 反演性:客观度量M在反演操作下是不变的,即如果交换频度计数f11和f00,f10和f01它的值保持不变。

    • 在反演操作下保持不变/变化的度量: p234
      • 不变:不适合分析非对称的二元数据
      • 变:适合非对称的二元数据
        数据挖掘之第6章 关联规则:基本概念和算法_第9张图片

    - 缩放不变性: 客观度量M在行/列缩放操作下是不变的。p235

    - 零加性:添加不相关数据
    数据挖掘之第6章 关联规则:基本概念和算法_第10张图片

6.7.3 Simpson’s paradox

  • 辛普森悖论: 在某些情况下,隐藏的变量可能会导致观察到的一对变量之间的联系消失或逆转方向。
  • 需要适当的分层才能避免因辛普森悖论产生虚假的模式。

你可能感兴趣的:(数据挖掘导论)