Apriori 与 FP-growth 算法

文章总览:YuanDaiMa2048博客文章总览


关联规则挖掘是数据挖掘领域中的一个重要任务,旨在发现数据集中不同项之间的关联关系。Apriori 算法和 FP-growth 算法是两种常用的关联规则挖掘算法,它们在挖掘频繁项集和关联规则方面有着不同的优势和特点。

关联规则挖掘概述

关联规则挖掘是一种无监督学习方法,通过分析数据集来发现其中的潜在关联规则。在关联规则挖掘中,常用的概念包括支持度、置信度和频繁项集:

  • 支持度(Support):指某个项集在数据集中出现的频率,用于衡量项集的频繁程度。
  • 置信度(Confidence):指在某个条件下规则发生的概率,用于衡量关联规则的可信程度。
  • 频繁项集:指支持度大于等于最小支持度阈值的项集。

Apriori 算法

基本原理

Apriori 算法是一种用于挖掘频繁项集的经典算法。其基本原理是通过一种逐层搜索的迭代方法,从频繁项集的性质出发,生成频繁项集。具体步骤如下:

  1. 扫描事务数据库,找出所有的频繁1项集,记为L1。
  2. 利用L1生成候选2项集,然后通过最小支持度阈值筛选出频繁2项集,记为L2。
  3. 使用L2生成候选3项集,通过最小支持度阈值筛选出频繁3项集,记为L3,以此类推,直到不能再找到任何频繁k项集。
  4. 根据频繁项集生成关联规则,并根据最小置信度阈值筛选出满足条件的关联规则。

Apriori 算法的一个重要性质是任意频繁项集的所有非空子集也必须是频繁的,这一性质保证了算法的有效性和完整性。

应用实例

  • 编写 Apriori.py 代码
    def createC1(dataSet):
        C1 = []
        for transaction in dataSet:
            for item in transaction:
                if [item] not in C1:
                    C1.append([item])
        C1.sort()
        return list(map(frozenset, C1))
    
    
    def scanD(D, Ck, minSupport):
        ssCnt = {
         }
        for tid in D:
            for can in Ck:
                if can.issubset(tid):
                    ssCnt[can] = ssCnt.get(can, 0) + 1
        numItems = float(len(D))
        retList = []
        supportData = {
         
  • 50
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值