一、前述
關聯規則的目的在於在一個資料集中找出項之間的關係,也稱之為購物藍分析 (market basket analysis)。例如,購買鞋的顧客,有10%的可能也會買襪子,60%的買麵包的顧客,也會買牛奶。這其中最有名的例子就是"尿布和啤酒"的故事了。
二、相關概念
交易集:包含所有資料的一個資料集合,資料集合中的每條資料都是一筆交易
模式/項集(ItemSet):項組合被成為模式/項集
支援度(Support):一個項集在在整個交易集中出現的次數/出現的頻度,比如:Support({A,C})=2表示A和C同時出現的次數是2次
最小支援度:交易次數達到最小支援度的情況下,該項集才會被計算
頻繁項集:如果項集的支援度大於等於最小支援度,那麼改項集被成為頻繁項集,即出現的比較頻繁。
置信度(Confidence):關聯規則左件和右件同時出現的頻繁程度,該值越大,表示同時出現的機率越大。
關聯規則:LHS --- RHS(confidence) -----> 如果客戶購買了左件(LHS),也可能購買右件(RHS),購買的置信度為confidence
首先我們來看,什麼是規則?規則形如"如果…那麼…(If…Then…)",前者為條件,後者為結果。例如一個顧客,如果買了可樂,那麼他也會購買果汁。
如何來度量一個規則是否夠好?有兩個量,置信度(Confidence)和支援度(Support)。
假設有如下表的購買記錄。
整理後如圖:
上表中橫欄和縱欄的數字表示同時購買這兩種商品的交易條數。如購買有Orange的交易數為4,而同時購買Orange和Coke的交易數為2。
置信度表示了這條規則有多大程度上值得可信。設條件的項的集合為A,結果的集合為B。置信度計算在A中,同時也含有B的概率。即Confidence(A==>B)=P(B|A)。例 如計算"如果Orange則Coke"的置信度。由於在含有Orange的4條交易中,僅有2條交易含有Coke.其置信度為0.5。
支援度計算在所有的交易集中,既有A又有B的概率。例如在5條記錄中,既有Orange又有Coke的記錄有2條。則此條規則的支援度為2/5=0.4。現在這條規則可表述為,如果一個顧客購買了Orange,則有50%的可能購買Coke。而這樣的情況(即買了Orange會再買Coke)會有40%的可能發生。支援度是針對項集來說的,因此可以定義一個最小支援度,而只保留滿足最小支援度的項集。
關聯規則要求項集必須滿足的最小支援閾值,稱為項集的最小支援度(Minimum Support),記為supmin。支援度大於或等於supmin的項集稱為頻繁項集,簡稱頻繁集,反之則稱為非頻繁集。通常k-項集如果滿足supmin,稱為k-頻繁集,記作Lk。關聯規則的最小置信度(Minimum Confidence)記為confmin,它表示關聯規則需要滿足的最低可靠性。
三、Apriori演算法
1、原理