天天看點

mysql置信度支援度_支援度、置信度和提升度

購物籃分析

mysql置信度支援度_支援度、置信度和提升度

購物籃資料的二進制0/1表示

利用關聯分析的方法可以發現

二進制表示

每一行對應一個事務,每列對應一個項,項用二進制變量表示

項在事務中出現比不出現更重要,是以項是非對稱的的二進制變量。

項集(Itemset):包含0個或多個項的集合,如果包含k個項,則稱為k-項集。

事務的寬度:事務中出現的項的個數

一般我們使用三個名額來度量一個關聯規則,這三個名額分别是:支援度、置信度和提升度。

Support(支援度):表示同時包含A和B的事務占所有事務的比例。如果用P(A)表示使用A事務的比例,那麼Support=P(A&B)

Confidence(可信度):表示使用包含A的事務中同時包含B事務的比例,即同時包含A和B的事務占包含A事務的比例。公式表達:Confidence=P(A&B)/P(A)

Lift(提升度):表示“包含A的事務中同時包含B事務的比例”與“包含B事務的比例”的比值。公式表達:Lift=( P(A&B)/P(A))/P(B)=P(A&B)/P(A)/P(B)。

提升度反映了關聯規則中的A與B的相關性,提升度>1且越高表明正相關性越高,提升度<1且越低表明負相關性越高,提升度=1表明沒有相關性。

舉例子:

10000個超市訂單(10000個事務),其中購買三元牛奶(A事務)的6000個,購買伊利牛奶(B事務)的7500個,4000個同時包含兩者。

那麼通過上面支援度的計算方法我們可以計算出:

三元牛奶(A事務)和伊利牛奶(B事務)的支援度為:P(A&B)=4000/10000=0.4.

三元牛奶(A事務)對伊利牛奶(B事務)的置信度為:包含A的事務中同時包含B的占包含A的事務比例。4000/6000=0.67,說明在購買三元牛奶後,有0.67的使用者去購買伊利牛奶。

伊利牛奶(B事務)對三元牛奶(A事務)的置信度為:包含B的事務中同時包含A的占包含B的事務比例。4000/7500=0.53,說明在購買三元牛奶後,有0.53的使用者去購買伊利牛奶。

上面我們可以看到A事務對B事務的置信度為0.67,看似相當高,但是其實這是一個誤導,為什麼這麼說?

因為在沒有任何條件下,B事務的出現的比例是0.75,而出現A事務,且同時出現B事務的比例是0.67,也就是說設定了A事務出現這個條件,B事務出現的比例反而降低了。這說明A事務和B事務是排斥的。

下面就有了提升度的概念。

我們把0.67/0.75的比值作為提升度,即P(B|A)/P(B),稱之為A條件對B事務的提升度,即有A作為前提,對B出現的機率有什麼樣的影響,如果提升度=1說明A和B沒有任何關聯,如果<1,說明A事務和B事務是排斥的,>1,我們認為A和B是有關聯的,但是在具體的應用之中,我們認為提升度>3才算作值得認可的關聯。

提升度是一種很簡單的判斷關聯關系的手段,但是在實際應用過程中受零事務的影響比較大,零事務在上面例子中可以了解為既沒有購買三元牛奶也沒有購買伊利牛奶的訂單。數值為10000-4000-2000-3500=500,可見在本例中,零事務非常小,但是在現實情況中,零事務是很大的。在本例中如果保持其他資料不變,把10000個事務改成1000000個事務,那麼計算出的提升度就會明顯增大,此時的零事務很大(1000000-4000-2000-3500),可見提升度是與零事務有關的。

根據《資料挖掘概念與技術》一書的說法,常用的判斷方法 還不是提升度,而是 KULC度量+不平衡比(IR) 。他們可以有效的降低零事務造成的影響。

下面補充一下KULC和IR的說明:

KULC=0.5*P(B|A)+0.5*P(A|B)

該公式表示 将兩種事件作為條件的置信度的均值,避開了支援度的計算,是以不會受零和事務的影響。在上例中,KULC值= (4000/6000+4000/7500)/2=0.6

IR=P(B|A)/P(A|B) ,IR用來訓示一種情況

假如在上例中6000個事務包含三元牛奶,75000個包含伊利牛奶,同時購買依舊為4000

則:

KULC=0.5*(4000/75000+4000/6000)=0.36

IR=4000/6000/(4000/75000)=12.5

這說明這兩個事務的關聯關系非常不平衡,購買三元牛奶的顧客很可能同時會買伊利牛奶,而購買了伊利牛奶的使用者不太會再去買三元牛奶。很好了解,A對B的支援度遠遠高于B對A的支援度。