数据挖掘十大算法之Apriori算法原理及源码实现

一、基本概念

    频繁模式:指频繁地出现在数据集中的模式。例如,频繁地同时出现在交易数据集中的商品(如牛奶和面包)的集合就是频繁项集。

    支持度:支持度的公式是support(A->B) = P(A U B),即A和B同时出现的概率。

    置信度:置信度大的公式是confidence ( A-> B ) = P(A | B) = support ( A U B) / support ( A ),揭示的是A出现时,B出现的概率有多大。如果置信度为1,则A、B可进行捆绑销售了

二、Apriori算法的实现原理

    频繁项集数据挖掘的一个典型例子就是购物篮分析。该过程通过发现顾客放入购物篮中的商品之间的关联来分析顾客的行为,这样可以帮助零售商指定更好的销售策略。

    如何产生规则呢。可以分两步走。

  •     首先找出频繁集(frequent itemset)。所谓频繁集指满足最小支持度或置信度的集合。
  •     其次从频繁集中找出强规则(strong rules)。强规则指既满足最小支持度又满足最小置信度的规则。

    这其中有一个定理。即频繁集的子集也一定是频繁集。比如,如果{A,B,C}是一个3项的频繁集,则其子集{A,B},{B,C},{A,C}也一定是2项的频繁集。为方便,可以把含有k项的集合称之为k-itemsets.

    这里,我们给出具体的例子:

  1. 在算法的第一次迭代中,每个项都是候选1项集L1的成员,算法扫描所以的项,并对出现次数进行计数,然后计算每个项的支持度,若大于等于最小支持度,则存入L中
  2. 为了找到频繁二项集L2的集合,采用连接算法,两个L1进行连接,找到二项集,计算支持度,若大于等于最小支持度,则存入L中
  3. 依次类推,两个L2连接找到候选三项集,并计算支持度,若大于等于最小支持度,则存入L中
  4. 生成强规则
  5. 计算置信度,若大于等于最小置
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apriori算法是一种常见的关联规则挖掘算法,用于发现数据集中项集之间的关联关系。Apriori算法基于频繁项集的概念,即在数据集中经常出现的项集。该算法首先生成所有可能的项集,然后通过剪枝来移除不频繁的项集,最终得到频繁项集。 Apriori算法的核心思想是利用“先验知识”(即Apriori原理)来减少候选项集的数量。Apriori原理指的是,如果一个项集是频繁的,则它的所有子集也一定是频繁的。因此,在执行Apriori算法时,我们只需要考虑频繁项集,而不需要考虑非频繁项集。这样就可以减少候选项集的数量,从而提高算法的效率。 Apriori算法的步骤如下: 1. 扫描数据集,计算每个项的支持度(即在数据集中出现的次数)。 2. 根据最小支持度阈值,生成频繁1项集。 3. 基于频繁1项集,生成候选2项集。 4. 扫描数据集,计算候选2项集的支持度,并根据最小支持度阈值筛选出频繁2项集。 5. 基于频繁2项集,生成候选3项集。 6. 重复步骤4和5,直到无法生成新的频繁项集为止。 Apriori算法的优点是简单易懂,实现较为容易。但是,它的缺点也比较明显,即在处理大规模数据集时,需要枚举所有可能的项集,导致计算复杂度较高。同时,由于候选项集的数量会随着项集大小的增加而指数级增长,因此算法的效率会随着项集大小的增加而降低。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值