Apriori演算法整理

2021-08-16 01:26:35 字數 1925 閱讀 8979

首先兩個基本概念

支援度:a事件和b事件同時發生的概率

置信度:在a發生的事件中同時發生b的概率,p(b|a)=p(ab)/p(a)。

例子:[支援度:

3%,置信度:

40%]

支援度3%

:意味著

3%顧客同時購買牛奶和麵包

置信度40%

:意味著購買牛奶的顧客

40%也購買麵包

智慧型商場模型:目標是找到經常一起購買的物品集合,從而優化商場

貨物的擺放,提高銷售額。

計算乙個集合(商品所有可能組合)的支援度指多少比例的交易記錄包含該集合。

多少個組合就需要遍歷多少遍整個交易記錄

當商品量很大的時候,商品的所有可能組合數量也很大,計算量很大

為了降低所需的計算時間,出現了apriori原理。

apriori原理:

如果某個項集是頻繁的,那麼它的所有子集也是頻繁的。

如果某個項集是非頻繁的,那麼它的所有超集也是非頻繁的

apriori演算法流程包括連線和剪枝兩個步驟,連線指的是自連線,剪枝則刪去支援度不滿足最小支援度閾值的非頻繁項集。

發現關聯規則,從頻繁項集中找到強關聯規則,什麼是強關聯規則呢?

指通過某個元素集推導出另乙個元素集,比如有乙個頻繁項集,那麼乙個可能的關聯規則是

那麼乙個可能的關聯規則是→,即如果客戶購買了底板和膠皮,則該客戶有較大概率購買膠水。這個頻繁項集可以推導出6個關聯規則:

→,→,

→,→,→,→

關聯規則是如何計算的呢?

例:下圖是某日超市的購物記錄(注意items已經排好序),使用上面敘述的apriori演算法實現了挖掘頻繁項集,其中頻繁項集i=為頻繁3-項集合l3,求由i產生哪些強關聯規則?(最小支援度閾值為20%,最小置信度閾值為80%)

i的非空子集有、、、、和。 

結果關聯規則如下,每個都列出置信度 

1).i1 ∧i2=>i5 ,共10個事務;5個事務包含i1,i2;2個事務包含i1,i2和i5   confidence=2/5=40%,support=2/10=20%

2).i1 ∧i5=>i2 ,共10個事務;2個事務包含i1,i5;2個事務包括i1,i2和i5   confidence=2/2=100%,support=2/10=20%

3).i2 ∧i5=>i1 ,共10個事務;2個事務包含i2,i5;2個事務包含i1,i2和i5    confidence=2/2=100%,support=2/10=20%

4).i1=>i2 ∧i5 ,共10個事務;7個事務包含i1;2個事務包含i1,i2和i5       confidence=2/7=28%,support=2/10=20%

5).i2=>i1 ∧i5 ,共10個事務;8個事務包含i2;2個事務包含i1,i2和i5       confidence=2/8=25%,support=2/10=20%

6).i5=>i1 ∧i2 ,共10個事務;2個事務包含i5;2個事務包含i1,i2和i5       confidence=2/2=100%,support=2/10=20%

因最小置信度閾值為80%,最小支援度閾值為20%,則236規則符合要求,是頻繁項集i=產生的強關聯規則且可以輸出。

可以看出,apriori演算法需要經常掃瞄全表,效率並不高。

fp-growth演算法是apriori演算法的改進版

將樹型結構引入演算法中,將提供頻繁項集的資料庫壓縮到一棵頻繁模式樹,但仍保留項集關聯資訊;與apriori演算法最大的不同有兩點:

第一,不產生候選集

第二,只需要兩次遍歷資料庫,大大提高了效率

總共掃瞄兩次資料庫,第一次掃瞄將每個item按照頻數降序排序,第二次掃瞄即構造fp樹

通過fp樹可以遞迴挖掘頻繁項集,但不能發現關聯規則。

Apriori演算法小結

1 apriori演算法是一種挖掘關聯規則的頻繁項集演算法,其核心思想是通過候選集生成挖掘頻繁項集。2 步驟 3 概念 對於a b 支援度 support p a b 既有a又有b 的概率 置信度 p b a p ab p a 在a 發生的事件中同時發生 b的概率 例如購物籃分析 牛奶 麵包例子 支...

Apriori演算法解析

摘要 本演算法主要應用於關聯分析問題 啤酒與尿布 它使用基於支援度的剪枝技術,系統的控制候選集指數增長。關聯規則是形如x y的蘊涵表示式,其中x和y是不相交的項集,即x y 支援度 s s x y count x y n 置信度 c c x y count x y count x count 表示支...

Apriori演算法例項

r.agrawal 和 r.srikant於1994年在文獻中提出了apriori演算法,該演算法的描述如下 下面是乙個具體的例子,最開始資料庫裡有4條交易,使用min support 2作為支援度閾值,最後我們篩選出來的頻繁集為。上述例子中,最值得我們從l2 到c3的這一步。這其實就是在執行偽 中...