【技术实现步骤摘要】
一种基于布尔矩阵和二进制编码改进的关联规则Apriori算法
[0001]本专利技术涉及一个基于布尔矩阵和二进制编码改进的关联规则Apriori算法,属于数据挖掘领域。
技术介绍
[0002]Apriori算法是最经典的关联规则挖掘算法之一,其核心思想就是利用连接产生候选项集,同时利用最小支持度对候选项集进行剪枝,最终生成频繁项集,但是随着数据爆发性的增长,传统的Aprior算法需要多次扫描数据库并且容易产生大量的候选项集,使得算法效率低下。
[0003]因此本专利技术提出一种基于布尔矩阵与二进制编码改进的关联规则Apriori算法,通过用布尔矩阵存储数据库的方式,使得整个算法对数据库只进行一次扫描操作,然后利用二进制编码之间的“与”运算获取项集的事务支持度,同时增加了非频繁项集的记录表,对候选项集提前剪枝,大大提高了算法的效率。
技术实现思路
[0004]为了解决Apriori算法需要多次扫描数据库与产生大量候选项集的缺点,本专利技术提出了一种基于布尔矩阵与二进制编码改进的关联规则Apriori算法 ...
【技术保护点】
【技术特征摘要】
1.一种基于布尔矩阵和二进制编码改进的关联规则Apriori算法,其特征在于,该方法包括以下步骤:(1)扫描数据库,生成布尔矩阵,获得频繁1
‑
项集;(2)压缩布尔矩阵;(3)提前预剪枝,同时建立非频繁项集的记录表;(4)建立辅助表;(5)更新非频繁项集记录表;(6)缩减算法流程;(7)压缩布尔矩阵,预剪枝,同时返回到步骤4,直到频繁k
‑
项集个数小于k+1时,迭代结束。2.根据权利要求1所述的一种基于布尔矩阵和二进制编码改进的关联规则Apriori算法,其特征在于,所述步骤(1)中,扫描数据库,生成布尔矩阵,获得频繁1
‑
项集,具体步骤为:步骤1
‑
1首先扫描数据库,用布尔矩阵来存储,行表示事务id,列表示项,其中矩阵中的a
ij
的可能取值为0或1,取值为1就代表此项目存在于事务中,0就代表不存在。计算各个事务的项目数,并按这个值对矩阵进行降序排列,在矩阵最后增加2列,第1列n,n用来记录每行中“1”的个数,第2列w,w用于将事务数据库中重复出现的事务压缩为1行,从而保证矩阵存储中每1条事务信息都不重复,在矩阵最后增加1行s,s用来记录每列的和;步骤1
‑
2根据布尔矩阵,获得频繁1
‑
项集。3.根据权利要求1所述的一种基于布尔矩阵和二进制编码改进的关联规则Apriori算法,其特征在于,所述步骤(2)中,计算各个事务的项目数,并按这个值对矩阵进行降序排列,将非频繁1
‑
项集所在的列删除,重新计算矩阵列n的值,按降序重新排列矩阵,同时在求频繁k
‑
项集(k≥2)时,将矩阵中的事务数小于k的行直接删除,重新计算矩阵中各列的值并重新排列矩阵。4.根据权利要求1所述的一种基于布尔矩阵和二进制编码改进的关联规则Apriori算法,其特征在于,所述步骤(3)中,提前预剪枝,同时建立非频繁项集的记录表,具体步骤为:步骤3
‑
1利用“若能生成频繁k
‑
项集(k≥2),则频繁(k
‑
1)
‑
项集中每个项的个数不能小于k
‑
1”的性质,对候选k
‑
项集(k≥2)进行剪枝;步骤3
‑
2建立非频繁项集的记录表;步骤3
‑
3将候选k
‑
项集(k≥2)与非频繁项集记录表进行匹配,若候选k
‑
项集(k≥2)集合中的某一项集与记录表中的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。