機器學習 Apriori演算法(關聯規則)

2021-08-21 08:17:58 字數 2321 閱讀 7552

上來乙個公式

支援度:p(a ∩ b),既有a又有b的概率

置信度

p(b|a),在a發生的事件中同時發生b的概率 p(ab)/p(a) 例如購物籃分析:牛奶 ⇒ 麵包

例子:[支援度:3%,置信度:40%]

支援度3%:意味著3%顧客同時購買牛奶和麵包

置信度40%:意味著購買牛奶的顧客40%也購買麵包

③如果事件a中包含k個元素,那麼稱這個事件a為k項集事件a滿足最小支援度閾值的事件

稱為頻繁k項集。

④同時滿足最小支援度閾值和最小置信度閾值的規則稱為強規則.

支援度:

support(x–>y) = |x交y|/n=集合x與集合y中的項在一條記錄中同時出現的次數/資料記

錄的個數。support(–>) = 啤酒和尿布同時出現的次數/資料記錄數 =

3/5=60%。

置信度:

confidence(x–>y) = |x交y|/|x| = 集合x與集合y中的項在一條記錄中同時出現的次數/集

合x出現的個數 。

confidence(–>) = 啤酒和尿布同時出現的次數/啤酒出現的次數=3/3=100%;

confidence(–>) = 啤酒和尿布同時出現的次數/尿布出現的次數 = 3/4 =75%

對於靠譜的關聯規則:

其支援度與置信度均應大於設定的閾值,即:

對給定的支援度閾值min_sup、置信度閾值min_conf,找出所有的滿足下列條件的關聯規則:

支援度》=min_support

置信度》=min_confident

同時滿足最小支援度閾值(min_sup和最小置信度閾值(min_conf)的規則稱作強規則 ,如果項集滿足最小支援度,則稱它為頻繁項集m)。

apriori定律

減少頻繁項集的生成時間,盡早消除一些完全不可能是頻繁項集的集合。

定律1

如果乙個集合是頻繁項集,則它的所有子集都是頻繁項集。

舉例:假設乙個集合是頻繁項集,即a、b同時出現在一條記錄的次數大於等於最小支援度min_support,則它的子集,出現次數必定≧min_support,即它的子集都是頻繁項集。

定律2

如果乙個集合不是頻繁項集,則它的所有超集都不是頻繁項集。

舉例:假設集合不是頻繁項集,即a出現的次數小於min_support,則它的任何超集如出現的次數必定(min_support),因此其超集必定也不是頻繁項集。

注意

由二級頻繁項集生成**候選項集時,沒有,那是因為不是二級頻繁項集。

最後生成**頻繁項集後,沒有更高一級的候選項集,演算法結束,是最大頻繁子集。

計算事例

傳統的apriori演算法的計算量很大,當商品資料量大時更顯著,基本是不可計算的,

不過後來有人用fp-tree演算法簡化了計算量。

[注-了解]

cba演算法:利用了關聯規則進行類別的分類,有別與其他的分類演算法。如

果乙個項集中包含預先知道的屬性,同時也包含分類屬性值,然後我們計算此頻繁

項能否匯出已知屬性值推出決策屬性值的關聯規則,如果滿足規則的最小置信度的

要求,那麼可以把頻繁項中的決策屬性值作為最後的分類結果。

支援度表示在歷史中a和b同時購買的概率,置信度表示a推薦b的可信程度。由此可以認為支援度*置信度表示a推薦b而a和b同時購買的概率。這樣相比於單純使用支援度更全面,同時避免了支援度中等或置信度中等的關聯規則被淘汰。

因為提公升度表示提公升單品購買概率的程度,所以可以使用提公升度作為最終推薦依據,避免組合、搭售、買贈關係的假性關聯。

機器學習之使用Apriori演算法進行關聯分析

from numpy import def loaddataset return 1,3,4 2,3,5 1,2,3,5 2,5 def createc1 dataset c1 for transaction in dataset for item in transaction if not ite...

機器學習實戰 Apriori演算法進行關聯分析

商場的銷售過程,涉及很多機器學習的應用,商品的陳列,購物卷的提供,使用者忠誠度等等,通過對這些大量資料的分析,可以幫組商店了解使用者的購物行為,進而對商品的定價 市場 存貨管理等進行決策幫組。從大規模資料集中尋找物品間的隱含關係被稱作關聯分析 association analysis 或關聯學習 a...

機器學習 演算法 Apriori

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