Apriori算法的python实现:通过限制候选产生发现频繁项集

Apriori算法Python实现:高效剪枝挖掘频繁项集
Apriori算法是1994年提出的用于布尔关联规则挖掘的算法,利用先验性质减少搜索空间。本文重点介绍了如何在Python中实现Apriori,特别是增加剪枝步骤,通过遍历并检查候选项集的子集来删除非频繁项,以提升效率。在找到频繁项集后,下一步将进行关联规则的挖掘。

Apriori算法是Agrawl和R.Srikant于1994年提出的,为布尔关联规则挖掘频繁项集的原创性算法[AS94b]。该算法使用了频繁项集性质的先验知识,使用了一种称为逐层迭代方法。为了提高频繁项集逐层产生的效率,该算法使用了先验性质 用于压缩搜索空间。

先验性质 :频繁项集的所有非空子集也一定是频繁的。

Apriori算法挖掘频繁项集主要由两步组成——连接步 剪枝步
参考链接:关联规则,Apriori算法及python实现
原文中没有进行剪枝的操作,本文主要添加了剪枝部分的代码,通过遍历候选项集的子集,加入该项的子集不在频繁项集中,则该项不是频繁项,将其删去。

# -*- coding: utf-8 -*-
import copy

def PowerSetsBinary(items):
    """
    找出集合的所有子集
    """
    #generate all combination of N items
    N = len(items)
    #enumerate the 2**N possible combinations
    for i in range(2**N):
        combo = []
        for j in range(N):
            #test jth bit of integer i
            if(i >> j ) % 2 == 1:
                combo.append(items[j])
        yield combo


def loadDataSet():
    """
        创建一个用于测试的简单的数据集
    """
    D = [[1, 2, 5], [2, 4], [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值