第6章频繁模式挖掘.pptVIP

  • 88
  • 0
  • 约7.83千字
  • 约 50页
  • 2021-01-06 发布于天津
  • 举报
6.3 FP-growth 算法 Apriori 算法的优缺点 ? 优点 21 – 算法原理简单,抑郁理解。 ? 缺点: – 需要多次扫描数据集 ? 如果频繁项集最多包含 10 个项,需要扫描事务数据集 10 次,这需要很大的 I/O 负载 – 产生大量频繁项集 ? 如数据集有 100 项,可能产生的候选项个数为 1.27*10 30 6.3 FP-growth 算法 频繁模式增长 (frequent-pattern growth FP-Growth) ? 将提供频繁项集的数据库压缩到 FP- 22 树,但仍保持项集关联信息 ; ? 压缩后的数据库分成一组条件数据 库,每个数据库关联一个频繁项, 并分别挖掘每个条件数据库 ; Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 {} f:4 c:1 c:3 b:1 b:1 a:3 m:2 b:1 p:2 m:1 p:1 6.3 FP-growth 算法 FP-growth 算法实现步骤 23 ①第一次扫描事务数据集 D ,确定每个 1 项集的支持度计数,将频繁 1 项集按照支持度计数降序排序, 得到排序后的频繁 1 项集集合 L 。 ②第二次扫描事务数据集 D ,读出每个事务并构建根结点为 null 的 FP-tree 。 i. 创建 FP-tree 的根结点,用 null 标记; ii. 将事务数据集 D 中的每个事务中的集,删除非频繁项,将频繁项按照 L 中的顺序重新排列事务中项的 顺序,并对每个事务创建一个分支; iii. 当为一个事务考虑增加分支时,沿共同前缀上的每个结点的计数加 1 ,为跟随前缀后的项创建结点 并连接; iv. 创建一个项头表,以方便遍历,每个项通过一个结点链指向它在树中的出现。 ③从 1 项集的频繁项集中支持度最低的项开始,从项头表的结点链头指针,沿循每个频繁项的链接来 遍历 FP-tree ,找出该频繁项的所有前缀路径,构造该频繁项的条件模式基,并计算这些条件模式基中 每一项的支持度; ④通过条件模式基构造条件 FP-tree ,删除其中支持度低于最小支持度阈值的部分,满足最小支持度阈 值的部分则是频繁项集; ⑤递归地挖掘每个条件 FP-tree ,直到找到 FP-tree 为空或者 FP-tree 只有一条路径,该路径上的所有项的 组合都是频繁项集。 6.3 FP-growth 算法 测试数据集 TID 1 2 3 4 5 6 7 8 9 Items 面包、可乐、麦片 牛奶、可乐 牛奶、面包、麦片 牛奶、可乐 面包、鸡蛋、麦片 牛奶、面包、可乐 牛奶、面包、鸡蛋、麦片 牛奶、面包、可乐 面包、可乐 24 例 6.8 FP-growth 算法 该数据集具有 9 个事务,设最小支持度为 2 ,频繁项集的极 大长度为 3 。试使用 FP-growth 算法挖掘表 6-2 的事务数据中 的频繁项集。 6.3 FP-growth 算法 null 25 面包: 7 项集 支持度计数 结点链头指针 面包 牛奶 可乐 麦片 鸡蛋 7 6 6 4 2 牛奶: 2 麦片: 1 可乐: 2 牛奶: 4 可乐: 2 鸡蛋: 1 麦片: 1 麦片: 2 可乐: 2 鸡蛋: 1 图 6-11 FP-tree 6.3 FP-growth 算法 NULL null 26 面包: 7 项集 面包 牛奶 可乐 麦片 鸡蛋 支持度记数 7 6 6 4 2 牛奶: 2 面包: 2 麦片: 1 可乐: 2 牛奶: 4 可乐: 2 麦片: 2 图 6-12 { 鸡蛋 } 的条件 FP-tree 鸡蛋: 1 麦片: 1 麦片: 2 可乐: 2 对于项集 { 鸡蛋 } ,开始向上找出所有 前缀路径,找出其中的频繁模式: { 面包,鸡蛋: 2} { 麦片,鸡蛋: 2} { 面包,麦片,鸡蛋: 2} 鸡蛋: 1 6.3 FP-growth 算法 NULL 27 面包: 7 项集 面包 牛奶 可乐 麦片 鸡蛋 支持度记数 7 6 6 4 2 牛奶: 2 麦片: 1 可乐: 2 牛奶: 4 可乐: 2 对于项集 { 麦片 } ,开始向上找出所有前 缀路径,找出其中的频繁模式: { 面包,麦片: 4} { 牛奶,麦片: 2} { 面包,牛奶,麦片: 2} 鸡蛋: 1 麦片: 1 麦片: 2 可乐: 2 鸡蛋: 1 6.

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档