基于spark实现并行化Apriori算法

本文档介绍了如何在Spark2.3平台上实现Apriori算法的并行化,通过分解算法为两个阶段,利用Spark的并行计算能力进行支持度计数和频繁项集挖掘,以提高效率。
摘要由CSDN通过智能技术生成

一、 实验要求

        在 Spark2.3 平台上实现 Apriori 频繁项集挖掘的并行化算法。要求程序利用 Spark 进
行并行计算。

二、算法设计

2.1 设计思路

  • 变量定义
    • D为数据集,设Lk是k项频繁项集,Ck是k项候选集,每一行数据定义为一笔交易(transaction),交易中的每个商品为项item。
    • 支持度: support, 即该项集在数据集D中出现的次数
  • 算法流程
    • 单机Apriori算法的主要步骤如下:
      1. 获取输入数据,产生频繁1项集,以及和I作为候选集,扫描数据集D,获取候选集C1的支持度,并找出最小支持度min_sup的元素作为频繁1项集L1.
      2. 扫描数据集D,获取候选集Ck的支持度,并找出其中满足最小支持度的元素作为频繁k项集Lk
      3. 通过频繁k项集Lk产生k+1候选集Ck+1
      4. 通过迭代步骤2和3,直到找不到k+1项集结束

并行化设计的思路主要是考虑将对于支持度计数的过程使用wordcount来进行统计。

2.2 并行化算法设计

        Apriori算法产生频繁项集有两个特点:第一,它是逐层的,即从频繁1-项集到频繁k-项集;第二,它使用产生-测试的策略来发现频繁项,每次迭代后都由前一次产生的频繁项来产生新的候选项,然后对新产生的候选项集进行支持度计数得到新的频繁项集。根据算法的特点,我们将算法分为两个阶段:
如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值