本文主要是介绍数据挖掘算法之 Apriori,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、什么是Apriori算法?
Apriori算法是寻找所有支持度不小于minsup的项集。项集的支持度指的是包含该项集的事务占所有事务的比例。频繁项集指的是满足给定最下支持度的项集
Apriori算法是由Agrawal等人于1993提出的,它采用逐层搜索策略(层次搜索策略)产生所有的频繁项集。
Apriori性质:
1: 若A是一个频繁项集,则A的每一个子集都是一个频繁项集。
2:如果一个项集不是频繁的,则它的所有超集也一定不是频繁的。 例如 如果{ac}不是频繁集、{abc}、{acd}也一定不是频繁集。
二、Apriori算法思想
Apriori算法的基本思路是采用层次搜索的迭代方法,由候选(k-1)-项集来寻找候选k-项集,并逐一判断产生的候选k-项集是否是频繁的。
设Ck是长度为k的候选项集的集合,Lk是长度为k的频繁项集的集合。为了简单,设最小支持度阈值min_sup为最小元组数,即采用最小支持度计数。
首先,找出频繁1-项集,用L1表示。
由L1寻找C2,由C2产生L2,即产生频繁2-项集的集合。
由L2寻找C3,由C3产生L3。
以此类推,直至没有新的频繁k-项集被发现。求每个Lk时都要对事务数据库D作一次完全扫描。
举例如下: 在所示的事务数据库,设min_sup=2,产生所有频繁项集的过程如图5.1所示,最后L4=Ф,算法结束,产生的所有频繁项集为L1∪L2∪L3。
算法需要解决两个问题
这篇关于数据挖掘算法之 Apriori的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!