Apriori计算速度提升

在利用Apriori算法计算关联规则时由于涉及到遍历搜索在计算数据较大时复杂度高,本文主要是在网上现有的python code中进行修改使计算速度提升100倍。总数据集为700多万条,频繁项集K=5

1,关联规则需根据用户需求进行K维pair对进行交叉,在第一轮迭代后删除支持度<最小支持度的数

#L1 为第一轮迭代后符合最小支持度的项集
#data_set为原始数据集
new_l1 = []
for p in L1:
     new_l1.extend(list(p))
data_set2 = []
for t in data_set:
    new_t = [s for s in t if s in new_l1]
    if len(new_t)>=5:
        data_set2.append(new_t)

第一步进行数据删除后在本例中删除20%数据(最小支持度选择较小,因此删除数据不多)

2,计算复杂度最高的一点是需要每一行循环,并对所有符合交叉条件的项集进行循环来计算各个项集的频繁项。本例中当K=2时循环次数是700W*3400。根据数据特点(每一行数据个数均值为10条),当k<=4时每一次的迭代时先计算这一行数据所有可能的交叉方式,然后检验交叉项集是否为频繁项集,可将循环次数降为700W*45.

 Lk = set()
 item_count = {}
 for t in da
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值