如果有一個物品集A,一個事務T,關聯規則是例如以下形式的一種蘊含:A→B,當中A、B
定義:設W中支持物品集A的事務中。有c
通俗解釋:簡單地說,可信度就是指在出現了物品集A
實例說明:上面所舉的圓珠筆和筆記本的樣例。該關聯規則的可信度就回答了這樣一個問題:假設一個顧客購買了圓珠筆,那么他也購買筆記本的可能性有多大呢?在上述樣例中,購買圓珠筆的顧客中有65%的人購買了筆記本,
概率描寫敘述:物品集A對物品集B的置信度confidence(A==>B)=P(A|B)
定義:設W
支持度描寫敘述了A
通俗解釋:簡單地說。A==>B的支持度就是指物品集A和物品集B同一時候出現的概率。
實例說明:某天共同擁有1000 個顧客到商場購買物品,當中有150個顧客同一時候購買了圓珠筆和筆記本,那么上述的關聯規則的支持度就是15%。
概率描寫敘述:物品集A對物品集B的支持度support(A==>B)=P(A n B)
定義:設W
通俗解釋:期望可信度描寫敘述了在沒有不論什么條件影響時,物品集B
實例說明:假設某天共同擁有1000
概率描寫敘述:物品集A對物品集B的期望置信度為support(B)=P(B)
定義:提升度是可信度與期望可信度的比值
通俗解釋:提升度反映了“物品集A的出現”對物品集B的出現概率發生了多大的變化。
實例說明:上述的關聯規則的提升度=65%/25%=2.6
概率描寫敘述:物品集A對物品集B的期望置信度為lift(A==>B)=confidence(A==>B)/support(B)=p(B|A)/p(B)
總之,可信度是對關聯規則的精確度的衡量,支持度是對關聯規則重要性的衡量。支持度說明了這條規則在全部事務中有多大的代表性。顯然支持度越大,關聯規則越重要。
有些關聯規則可信度盡管非常高,但支持度卻非常低。說明該關聯規則有用的機會非常小,因此也不重要。
在關聯規則挖掘中。滿足一定最小置信度以及支持度的集合成為頻繁集(frequent itemset),或者強關聯。關聯規則挖掘則是一個尋找頻繁集的過程。
關聯規則挖掘的相關算法
1.Apriori算法:使用候選項集找頻繁項集
Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法。其核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、布爾關聯規則。在這里。全部支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。
該算法的基本思想是:首先找出全部的頻集,這些項集出現的頻繁性至少和提前定義的最小支持度一樣。然后由頻集產生強關聯規則,這些規則必須滿足最小支持度和最小可信度。然后使用第1步找到的頻集產生期望的規則。產生僅僅包括集合的項的全部規則,當中每一條規則的右部僅僅有一項。這里採用的是中規則的定義。一旦這些規則被生成。那么僅僅有那些大於用戶給定的最小可信度的規則才被留下來。
為了生成全部頻集,使用了遞推的方法。
可能產生大量的候選集,以及可能須要反復掃描數據庫,是Apriori算法的兩大缺點。
2.基於划分的算法
Savasere等設計了一個基於划分的算法。這個算法先把數據庫從邏輯上分成幾個互不相交的塊,每次單獨考慮一個分塊並對它生成全部的頻集。然后把產生的頻集合並。用來生成全部可能的頻集,最后計算這些項集的支持度。這里分塊的大小選擇要使得每一個分塊能夠被放入主存,每一個階段僅僅需被掃描一次。而算法的正確性是由每一個可能的頻集至少在某一個分塊中是頻集保證的。該算法是能夠高度並行的,能夠把每一分塊分別分配給某一個處理器生成頻集。產生頻集的每一個循環結束后。處理器之間進行通信來產生全局的候選k-項集。通常這里的通信過程是算法運行時間的主要瓶頸;而還有一方面,每一個獨立的處理器生成頻集的時間也是一個瓶頸。
3.FP-樹頻集算法
針對Apriori算法的固有缺陷,J. Han等提出了不產生候選挖掘頻繁項集的方法:FP-樹頻集算法。
採用分而治之的策略。在經過第一遍掃描之后,把數據庫中的頻集壓縮進一棵頻繁模式樹(FP-tree),同一時候依舊保留當中的關聯信息,隨后再將FP-tree分化成一些條件庫,每一個庫和一個長度為1的頻集相關,然后再對這些條件庫分別進行挖掘。
當原始數據量非常大的時候,也能夠結合划分的方法,使得一個FP-tree能夠放入主存中。實驗表明,FP-growth對不同長度的規則都有非常好的適應性。同一時候在效率上較之Apriori算法有巨大的提高。