Apriori算法的实现
这是我学习了关联规则Apriori算法原理后参照《机器学习实战》实现的算法代码,首先分为两个部分,第一部分是频繁项集的构建,第二部分是关联规则的挖掘。特别的是我的测试数据也就是loadDataSet()函数中的数据进行了改变,这是为了能帮助理解第二部分。然后代码中我加了很多为了让自己理解的输出测试,保留在里面,应该也能帮助大家理解
一、构建频繁项集(注释都在代码中了)
from numpy import *
def loadDataSet():
return [[1, 3, 4,6,7], [2, 3, 4,5,6,7], [1, 2, 3, 5,7], [2,4, 5,6],[3,4,5,6,7]]
def createC1(dataSet):
C1 = []
for transaction in dataSet:
for item in transaction:
if not [item] in C1:
C1.append([item])
C1.sort()
return map(frozenset, C1)#use frozen set so we can use it as a key in a dict
def scanD(D, Ck, minSupport):
ssCnt = {
}
for tid in D:
for can in Ck:
if can