关联规则挖掘在数据挖掘领域中占据重要位置,其核心算法是Apriori算法。该算法由Agrawal于1993年提出,是挖掘布尔关联规则频繁项集的基础算法。Apriori算法的基本原理是“逐层搜索的迭代方法”,通过利用频繁项集性质的先验知识,逐层找到频繁项集。然而,随着数据挖掘技术的发展,Apriori算法的不足之处也逐渐显露,特别是其在大型数据库中的使用效率和I/O开销问题。
Apriori算法的主要性能瓶颈在于两个方面:
1. 需要多次扫描事务数据库,导致很大的I/O负载。
2. 会产生庞大的候选集,增加了计算和存储的开销。
为了克服这些性能瓶颈,已经有研究者提出了一些改进方法,其中本文作者白东玲和郭庆平提出了一种新的基于矩阵的改进Apriori算法。该改进算法通过充分利用内存空间,有效减少了数据库的扫描次数,提高了对大型数据库的使用效率。文章通过多次实验验证了这种新算法的有效性。
在数据挖掘的定义中,有广义和狭义之分。广义上讲,数据挖掘是从大量数据集中提取或“挖掘”出隐含的知识,这些知识是人们事先不知道的,但对决策具有潜在价值。狭义上讲,数据挖掘是从特定形式的数据集中提炼知识的过程。关联规则挖掘关注的是从数据库中发现数据之间的相关性,是数据挖掘研究的热门课题之一。
在关联规则挖掘中,目前研究主要集中在三个方面:
1. 基于项的关联规则挖掘。
2. 定量的关联规则挖掘。
3. 因果规则。
关联规则具有两个重要的阈值:支持度和置信度。支持度是指包含规则中项集的事务在所有事务中所占的百分比,而置信度是指包含规则前项的事务中有多少比例同时也包含规则的后项。一个强规则需要同时满足最小支持度阈值(minsup)和最小置信度阈值(minconf)。
频繁项集是指支持度大于或等于给定最小支持度的项集。挖掘关联规则的过程就是找出同时满足最小支持度和最小置信度的关联规则。
Apriori算法在挖掘关联规则时分为两个步骤:
1. 从数据库中找出所有频繁项集。
2. 由频繁项集产生关联规则。
第一步对算法性能有决定性影响,也是大部分研究的焦点。Apriori算法使用逐层搜索的迭代方法来获得频繁项集。通过连接和剪枝两个步骤,算法首先找到频繁1-项集的集合L1,然后使用L1找到频繁2-项集的集合L2,以此类推直到不能再找到频繁k-项集。在每一步中,都需要对数据库进行一次完整的扫描。
连接操作是通过Lk-1中的每个元素进行连接得到Lk的候选集Ck,而剪枝操作则是在确定Ck中每个候选的计数后,通过扫描数据库来确定Lk。
尽管Apriori算法具有里程碑意义,但在处理大型数据库时,其性能瓶颈越发明显,特别是在I/O负载和候选集产生方面。因此,针对这些问题的研究和改进非常必要。改进的Apriori算法如文中提到的基于矩阵的改进算法,就是针对这些问题所提出的解决策略之一。通过这样的算法改进,能够有效提高数据挖掘的效率和准确性,尤其对于大型数据库的挖掘任务,具有重要的实际应用价值。