这里把之前的实验报告搬出来,代码参考了一下各位大哥的,然后自己再温习一遍~
作为数据挖掘的典型算法(也是机器学习的典型算法),Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。关于其更多的介绍网上很多就不写了。
算法的基本步骤如下:
1. 首先先扫描数据集,计算每个单项集的支持度,根据给定的最小支持度的值,得到第一项频繁集。
2. 然后通过运算,得到二项候选集,对每个候选集再次扫描数据集,得出每个候选集的支持度,再与最小支持度比较,删除不合格的单项集,得到二项频繁集。
3. 如此进行下去,直到不能连接产生新的候选集为止。
4. 对于找到的所有频繁集,用规则提取算法进行关联规则的提取,算出置信度。
算法的关键代码如下:
L1 = find_frequent_1-itemsets(D);
for (k=2;Lk-1 ≠Φ ;k++) {
Ck = apriori_gen(Lk-1 ,min_sup);
for each transaction t ∈ D {//scan D for counts
Ct = subset(Ck,t);//get the subsets of t that are candidates
for each candidate c ∈ Ct
c.count++;
}
Lk ={c ∈ Ck|c.count≥min_sup}
}
r