上來乙個公式
①支援度
: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...