先验算法 在计算机科学以及数据挖掘领域中 先验算法Apriori Algorithm是关联规则学习的经典算法之一先验算法的设计目的是为了处理包含交易信息内容的数据库例如顾客购买的商品清单或者网页常访清单而其他的算法则是设计用来寻找无交易信息如Winepi算法和Minepi算法或无时间标记如DNA测序的数据之间的联系规则 在关联式规则中一般对于给定的项目集合例如零售交易集合每个集合都列出的单个商品的购买信息算法通常尝试在项目集合中找出至少有C个相同的子集先验算法采用自底向上的处理方法即频繁子集每次只扩展一个对象该步骤被称为候选集产生并且候选集由数据进行检验当不再产生符合条件的扩展对象时算法终止 先验算法采用广度优先搜索算法进行搜索并采用树结构来对候选项目集进行高效计数它通过长度为 k   displaystyle k 的候选项目集来产生长度为 k displaystyle k 的候选项目集然后从中删除包含不常见子模式的候选项根据向下封闭性引理该候选项目集包含所有长度为 k displaystyle k 的频繁项目集之后就可以通过扫描交易数据库来决定候选项目集中的频繁项目集 虽然先验算法具有显著的历史地位但是其中的一些低效与权衡弊端也进而引致了许多其他的算法的产生候选集产生过程生成了大量的子集先验算法在每次对数据库进行扫描之前总是尝试加载尽可能多的候选集并且自底而上的子集浏览过程本质上为宽度优先的子集格遍历也直到遍历完所有   S    displaystyle S 个可能的子集之后才寻找任意最大子集S