Apriori算法原理总结.pdfVIP

  • 3
  • 0
  • 约3.06千字
  • 约 2页
  • 2023-03-25 发布于湖北
  • 举报
Apriori算法原理总结 1.频繁项集的评估标准 什么样的数据才是频繁项集呢?也许你会说,这 不简单,⾁眼⼀扫,⼀起出现次数多的数据集就是频繁项集吗 !的确,这也没有说错,但 是有两个问题,第⼀是当数据量⾮常⼤的时候,我们没法直接⾁眼发现频繁项集,这催⽣了关联规则挖掘的算法,⽐如Apriori, PrefixSpan, CBA。第⼆是我们缺乏⼀个频繁项集的标准。⽐如10条记录,⾥⾯A和B同时出现了三次,那么我们能不能说A和B⼀起构成 频繁项集呢?因此我们需要⼀个评估频繁项集的标准。 常⽤的频繁项集的评估标准有⽀持度,置信度和提升度三个。 ⽀持度就是⼏个关联的数据在数据集中出现的次数占总数据集的⽐重。或者说⼏个数据关联出现的概率。如果我们有两个想分析关联性的数 据X和Y,则对应的⽀持度为: number (XY ) Supp ort (X , Y ) = P (XY ) = num (AllSamp les) 以此类推,如果我们有三个想分析关联性的数据X ,Y和Z,则对应的⽀持度为: number (XY Z) Supp ort (X , Y , Z) = P (XY Z) = num (AllSamp les)  ⼀般来说,⽀持度⾼的数据不⼀定构成频繁项集,但是⽀持度太低的数据肯定不构成频繁项集。 置信度体现了⼀个数据出现后,另⼀个数据出现的概率,或者说数据的条件概率。如果我们有两个想分析关联性的数据X和Y,X对Y的置信 度为 : Confidence(X ⇐ Y ) = P (X ∣Y ) = P (XY )/P (Y ) 也可以以此类推到多个数据的关联置信度,⽐如对于三个数据X ,Y,Z,则X对于Y和Z的置信度为 : Confidence(X ⇐ Y Z)P (X ∣Y Z) = P (XY Z)/P (Y Z) 举个例⼦,在购物数据中,纸⼱对应鸡⽖的置信度为40%,⽀持度为 1%。则意味着在购物数据中,总共有 1%的⽤户既买鸡⽖⼜买纸⼱;同 时买鸡⽖的⽤户中有40%的⽤户购买纸⼱。 提升度表⽰含有Y的条件下,同时含有X的概率,与X总体发⽣的概率之⽐,即: Lift (X ⇐ Y ) = P (X ∣Y )/P (X ) = Confidence(X ⇐ Y )/P (X ) 提升度体先了X和Y之间的关联关系, 提升度⼤于1则X ⇐ Y 是有效的强关联规则,提升度⼩于等于1则X ⇐ Y 是⽆效的强关联规则 。⼀ 个特殊的情况,如果X和Y独⽴,则有Lift (X ⇐ Y ) = 1,因为此时P (X ∣Y ) = P (X )。 ⼀般来说,要选择⼀个数据集合中的频繁数据集,则需要⾃定义评估标准。最常⽤的评估标准是⽤ ⾃定义的⽀持度,或者是 ⾃定义⽀持度和 置信度的⼀个组合。 2. Apriori算法思想 对于Apriori算法,我们使⽤⽀持度来作为我们判断频繁项集的标准。Apriori算法的⽬标是找到最⼤的K项频繁集。这⾥有两层意思,⾸ 先,我们要找到符合⽀持度标准的频繁集。但是这样的频繁集可能有很多。第⼆层意思就是我们要找到最⼤个数的频繁集。⽐如我们找到符 合⽀持度的频繁集AB和ABE,那么我们会抛弃AB,只保留ABE,因为AB是2项频繁集,⽽ABE是3项频繁集。那么具体的,Apriori算法是 如何做到挖掘K项频繁集的呢? Apriori算法采⽤了迭代的⽅法,先搜索出候选 1项集及对应的⽀持度,剪枝去掉低于⽀持度的1项集,得到频繁 1项集。然后对剩下的频繁 1 项集进⾏连接,得到候选的频繁2项集,筛选去掉低于⽀持度的候选频繁2项集,得到真正的频繁⼆项集,以此类推,迭代下去,直到⽆法 找到频繁k+ 1项集为⽌,对应的频繁k项集的集合即为算法的输出结果。 可见这个算法 是很简洁的,第i次的迭代过程包括扫描计算候选频繁i项集的⽀持度,剪枝得到真正频繁i项集和连接⽣成候选频繁i+ 1项集 三步。 我们下⾯这个简单的例⼦看看 : 我们的数据集D有4条记录,分别是 134,235,1235和25。现在我们⽤Apriori算法来寻找频繁k项

文档评论(0)

1亿VIP精品文档

相关文档