關聯規則


 

關聯規則(AssociationRules),無監督學習方法,用於知識發現。

其可以用於給數據進行標注,但缺點是其結果難以進行評估。

關聯規則的最經典的案例就是購物籃分析。同樣也可用於電影推薦、約會網站或者葯物間的相互副作用。

 

關聯規則首先定義:為項集(items),其中為項。

則為數據庫(database),其中為事務(transaction)。事務是項的集合,即,每個事務有唯一的標識索引,而規則定義如下:

每條規則有兩個不同的項集X和Y組成,X稱為前提,Y則稱為結論。

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

表1-1 超市銷售記錄表

在表中 {butter, bread} {milk}是一條關聯規則,表示如果顧客在購買butter和bread后,有很大的可能會購買milk。而類似這樣的規則能夠幫助超市制定一些促銷活動,提高營業。

這條規則的發現,需要其符合一定的指標。這些指標分別為支持度(support)和置信度(confidence)等等。

支持度,用來表示項集在數據庫中出現的頻率。對於數據庫D中的項集X,其定義為:數據庫中包含項集X的事務數t與所有事務數T之比

置信度,用來衡量規則的可信程度,對於規則 X Y ,其置信度定義為:數據庫中同時包含X 和 Y的事務數 與 只包含X的事務數之比

Lift定義為:

如果一個規則的lift值等於1,這表示前提和結論對應的事件相互獨立;如果lift值大於1,指示了兩個事件之間的相互依賴程度,值越大,關聯越強;如果lift值小於1,表明一個item的出現對其他item的出現存在消極影響(相斥),反之亦然(其中一個出現另一個一般不會出現)。lift的意義在於其即考慮了置信度也考慮了整個數據集中結論的支持度。

Conviction,用來表示規則預測出錯的概率,定義為:

在有了這些可計算的指標后,還需要給這些指標設定一個閾值,關聯規則只有滿足最小支持度閾值和最小置信度閾值,這條規則才能認為是有趣的。而且關聯規則的生成可分以下兩個步驟:

  1. 利用最小支持度閾值從數據庫中找出所有的頻繁項集;
  2. 利用最小置信度閾值從這些頻繁項集中生成規則。

    關聯規則的生成規則的階段是直接的,但尋找頻繁項集卻是非常耗時的,常用的高效的算法有Apriori,FP-growth等。

     

    Apriori算法

    假設一家商鋪經營着四種商品:商品0,商品 1,商品 2 和商品 3。根據排列組合,購買商品的情況有15種組合。如果商品的種類增加的話,購買商品的情況組合則可能呈指數級增長。Apriori根據:

  3. 如果某個項集是頻繁的,那么它的所有子集也是頻繁的;
  4. 如果某個項集是非頻繁的,那么它的所有超集也是非頻繁的

    來幫助減少在頻繁項集上的搜索遍歷。

    圖1-1 Apriori搜索頻繁項集的原理

    Apriori 算法是發現頻繁項集的一種方法。過程如下:

  5. 生成所有單個物品的項集列表。
  6. 接着掃描交易記錄來查看哪些項集滿足最小支持度要求,那些不滿足最小支持度的集合會被去掉。
  7. 對剩下來的項集進行組合以生成包含兩個元素的項集。再重新掃描交易記錄,去掉不滿足最小支持度的項集。
  8. 重復 步驟3 進行直到所有項集都被去掉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM