ID | milk | bread | butter | beer | diapers |
---|
1 1 1 0 0 0
2 0 0 1 0 0
3 0 0 0 1 1
4 1 1 1 0 0
5 0 1 0 0 0算法
支持度(Support)
sum(x)
sup(x) = --------
N數據庫
譬如在上面的示例數據庫中,{beer, diaper} 的支持度爲 1/5 = 0.2。5 條事務中只有一條事務同事包含 beer和 diaper ,
實際使用中咱們會設置一個最低的支持度(minimum support),
那些大於或等於最低支持度的 X 稱之爲頻繁的 item-set 。ide
置信度(Confidence)遊戲
置信度表示爲規則 X ⇒ Y 在整個 T 中出現的頻率。而置信度的值表示的意思是在包含了 X 的條件下,
還含有 Y 的事務佔總事務的比例。一樣假定 T 中含有 N 條數據,
那麼置信度的計算公式爲:
sup(xUY)
conf(x=>f)= --------
sup(x)事務
譬如再上面的示例數據庫中,{beer, diaper} 的置信度爲 0.2/0.2 = 1。表面在全部包含 beer 的事務中都會必定包含 diaper。
一樣的,在實際使用中咱們會設置一個最低置信度,那些大於或等於最小置信度的規則咱們稱之爲是有意義的規則。it
相關性度量
有時候使用支持度和置信度挖掘到的規則多是無效的。
舉個例子:
10000 個事務中, 6000 個事務包含計算機遊戲, 7500 個包含遊戲機遊戲, 4000 個事務同時包含二者。
關聯規則(計算機遊戲 ⇒ 遊戲機遊戲) 支持度爲 0.4 ,看似很高,但其實這個關聯規則是一個誤導。
在用戶購買了計算機遊戲後有 (4000÷6000) = 0.667 的機率的去購買遊戲機遊戲,而在沒有任何前提條件時,
用戶反而有 (7500÷10000) = 0.75的機率去購買遊戲機遊戲,也就是說設置了購買計算機遊戲這樣的前置條件反而會下降用戶去購買遊戲機遊戲的機率,
因此計算機遊戲和遊戲機遊戲是相斥的,也即代表是獨立的。數據挖掘
所以咱們能夠經過下面的一些相關性度量方法來篩選挖掘到的規則。io
提高度(Lift)
提高度能夠用來判斷規則 X ⇒ Y 中的 X 和 Y 是否獨立,若是獨立,那麼這個規則是無效的。
計算提高度的公式以下:
sup(xUY)
lift(X=>) = --------------
sup(x)*sup(Y)table
若是該值等於 1 ,說明兩個條件沒有任何關聯。若是小於 1 ,說明 X 與 Y 是負相關的關係,
意味着一個出現可能致使另一個不出現。大於 1 才表示具備正相關的關係。
通常在數據挖掘中當提高度大於 3 時,咱們才認可挖掘出的關聯規則是有價值的。class
他能夠用來評估一個出現提高另一個出現的程度。
提高度是一種比較簡單的判斷手法,實際中受零事務(也即不包含 X 也不包含 Y 的事務)的影響比較大。
因此若是數據中含有的零事務數量較大,該度量則不合適使用。
全置信度 和 最大置信度
sup(xUY)
allconf(x,Y) = ----------------- = min(P(x|Y),p(X|Y))
max(sup(x),sup(Y))
不難知道,最大置信度爲
maxconf(x,Y) = min(P(x|Y),p(X|Y))
全置信度和最大置信度的取值都是從 0 ~ 1 ,值越大,聯繫越大。
該度量是不受零事務影響的。
KULC 度量 + 不平衡比(IR)
給定兩個項集 X 和 Y,其 Kulczynski(Kulc) 度量定義爲:
kulc(x,Y) = 1/2 (P(x|Y) + P(Y|x))
能夠看作是兩個置信度的平均值,一樣取值也是從 0 ~ 1,值越大,聯繫越大,關係越大。
該度量一樣也是不受零事務影響的。
Apriori 算法
在執行算法以前,用戶須要先給定最小的支持度和最小的置信度。生成關聯規則通常被劃分爲以下兩個步驟:一、利用最小支持度從數據庫中找到頻繁項集。給定一個數據庫 D ,尋找頻繁項集流程以下圖所示