python如何使用apriori_python-如何加快基于Apriori框架的速度,以仅生...

我有一个具有60万行和15列的csv文件“ Col1,Col2 … COl15”.我想生成关联规则,其中只有右侧只有col15中的值.我正在使用here的apriori实现

它以这种方式计算每个项目集的minSupport:

oneCSet = returnItemsWithMinSupport(itemSet,

transactionList,

minSupport,

freqSet)

print "reached line 80"

currentLSet = oneCSet

k = 2

while(currentLSet != set([])):

print k

largeSet[k-1] = currentLSet

currentLSet = joinSet(currentLSet, k)

currentCSet = returnItemsWithMinSupport(currentLSet,

transactionList,

minSupport,

freqSet)

currentLSet = currentCSet

k = k + 1

def returnItemsWithMinSupport(itemSet, transactionList, minSupport, freqSet):

"""calculates the support for items in the itemSet and returns a subset

of the itemSet each of whose elements satisfies the minimum support"""

_itemSet = set()

localSet = defaultdict(int)

#print itemSet

for item in itemSet:

#print "I am here", list(item)

for transaction in transactionList:

if item.issubset(transaction):

freqSet[item] += 1

localSet[item] += 1

print "Done half"

for item, count in localSet.items():

support = float(count)/len(transactionList)

if support >= minSupport:

_itemSet.add(item)

return _itemSet

但是对于我拥有的许多行,这将花费很多时间,因为我希望RHS被限制为仅具有特定列(Col15)中的值,所以我可以通过某种方式减少频繁使用的项目集来使实现更快?其他方法之一是最后过滤规则,但是时间复杂度相同.还是有其他一些实现/库可以帮助我加快速度?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值