apriori算法是什么?

Python011

apriori算法是什么?,第1张

经典的关联规则挖掘算法包括Apriori算法和FP-growth算法。

apriori算法多次扫描交易数据库,每次利用候选频繁集产生频繁集;而FP-growth则利用树形结构,无需产生候选频繁集而是直接得到频繁集,大大减少扫描交易数据库的次数,从而提高了算法的效率,但是apriori的算法扩展性较好,可以用于并行计算等领域。

基本算法:

Apriori algorithm是关联规则里一项基本算法

Apriori算法将发现关联规则的过程分:

第一通过迭代,检索出事务数据库1中的所有频繁项集,即支持度不低于用户设定的阈值的项集;

第二利用频繁项集构造出满足用户最小信任度的规则。其中,挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。

Apriori算法的主要思想是找出存在于事物数据集中的最大频繁项集,再利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。

项集是项的集合。包含k个项的项集成为k项集。项集的出现频率是所有包含项集的事务计数,又称为绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作k。

项集A、B同时发生的概率称为关联规则的支持度(也称为相对支持度)。

项集A发生,则项集B发生的概率为关联规则的置信度。

最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上的最低重要性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性。同时满足最小支持度阈值和最小置信度阈值的规则称为强规则。

项集A的支持度计数是事务数据集中包含项集A的事务个数,简称为项集的频率或计数。

频繁项集哦的所有非空自己也必须是频繁项集。根据该性质可以得出:向不是频繁项集I的项集中添加事务A,新的项集I U A一定也不是频繁项集。

1)找出所有的频繁项集(支持度必须大于等于给丁的最小支持度阈值),在这个过程中连接步和剪枝步互相融合,最终得到最大频繁项集Lk。

连接步的目的是找到K项集,对给定的最小支持度阈值,分别对1项候选集C1,剔除小于该阈值的项集得到1项频繁项集L1;下一步由L1自身连接产生2项候选集C2,保留C2中满足约束条件的项集得到2项频繁集,记为L2;再下一步由L2与L3连接产生3项候选集C3,保留C2中满足约束条件的项集得到3项频繁集,记为L3···这样循环下去,得到最大频繁项集Lk。

剪枝步紧接着连接步,在产生候选项Ck的过程中起到减小搜索空间的目的。由于Ck是Lk-1与L1连接产生的,根据Apriori的性质频繁项集的所有非空子集也必须是频繁项集,所以不满足该性质的项集不会存在于Ck中,该过程就是剪枝。

2)由频繁项集产生强关联规则:由过程1)可知未超过预定的最小支持度阈值的项集已被提出,如果剩下这些规则又满足了预定的最小置信度阈值,那么就挖掘出了强关联规则。

经典的关联规则挖掘算法包括Apriori算法和FP-growth算法。apriori算法多次扫描交易数据库,每次利用候选频繁集产生频繁集;而FP-growth则利用树形结构,无需产生候选频繁集而是直接得到频繁集,大大减少扫描交易数据库的次数,从而提高了算法的效率。但是apriori的算法扩展性较好,可以用于并行计算等领域。

Apriori algorithm是关联规则里一项基本算法。是由Rakesh Agrawal和Ramakrishnan Srikant两位博士在1994年提出的关联规则挖掘算法。关联规则的目的就是在一个数据集中找出项与项之间的关系,也被称为购物蓝分析 (Market Basket analysis),因为“购物蓝分析”很贴切的表达了适用该算法情景中的一个子集。