機器學習 Apriori演算法

2022-08-17 17:30:19 字數 855 閱讀 7942

apriori演算法包含兩部分內容:1,發現頻繁項集 2,挖掘關聯規則。

通俗地解釋一下,就是這個意思:1.發現哪些專案常常同時出現 2.挖掘這些常常出現的專案是否存在「如果a那麼b」的關係。

舉個例子:**購物訂單常常會出現這樣一種情況:那就是某幾種物品常常一起買。比如鍋和鏟子、手機和手機殼等就會常常出現在同乙個訂單中,因此挖掘出哪些專案常常同時出現就是1中的問題。再進一步,對於這些常常出現的頻繁項集,如果能挖掘出「若a則b」的更強關係,那就更好了。比如買了手機的常常會再買個手機殼,但是反過來不成立。

發現頻繁項集最直觀的想法,就是想辦法對所有的專案進行全組合,也就是產生2n種,然後對這些不同的種類挨個計算出現最頻繁的組合。但是這種方法的搜尋空間太大,速度非常慢。apriori定理可以很大程度上縮小搜尋空間,其內容是:任一頻繁項集的所有非空子集也必須是頻繁的,也就是說,任何乙個非頻繁項集的超集一定也是非頻繁項集。這樣就可以直接刪除所有包含非頻繁項集的集合,很大程度上減少了搜尋空間。

挖掘關聯規則是以頻繁項集為基礎的。假設我們已經找到了幾個頻繁項集,現在要找到其中是否蘊含「若a則b」的因果關係。

要想計算是否存在因果關係,很直觀的想法就是計算條件概率p(b|a),看看在a條件下b的概率是否足夠高。

假設項集有a,b。

有了上述的鋪墊,現在引入術語定義:

支援度(support):p(ab),a和b同時出現概率。越大越頻繁。

置信度(confidence):p(b|a),條件概率。越大說明因果越強。

提公升度(lift):p(b|a)/p(b),有a這個條件和沒有a這個條件時,b出現的概率之比。

機器學習 演算法 Apriori

參考 很多人都喜歡用 啤酒跟尿布 這個例子來比喻機器學習,主要就是想說明apriori在挖掘物件關聯的重要作用,這個演算法很簡單,沒有涉及複雜的數學知識,一點邏輯而已,還有改進的apriori演算法,有時間我也會實現一下 簡單實現了一下apriori,直接上python 和結果 coding utf...

機器學習演算法 之Apriori

apriori演算法不同於以前接觸過的機器學習演算法,這種演算法用於在資料集中尋找有趣的關係。這些關係可以有兩種形式 頻繁項集或者關聯規則。關於演算法的詳細介紹參見 def apriori dataset,minsupport 0.5 c1 createc1 dataset d map set,da...

機器學習演算法(九) Apriori演算法

apriori演算法是一種關聯分析方法,用於發現隱藏在大型資料集中有意義的聯絡。所發現的聯絡可以使用關聯規則和頻繁項集來表示。令i 是購物籃資料所有項的集合,而t 是所有事務的集合。每個事務ti 包含的項集都是i的子集。在關聯分析中,包含0個或多個項的集合被稱為項集。如果乙個項集包含k個項,則稱它為...