關聯規則學習(Association rule learning)是資料探勘中分析的一種方法,是一種在大型資料庫中發現變數之間的有趣性關係的方法。
它的目的是利用一些有趣性的量度,進而識別數據庫中發現的強規則。基於強規則概念, Rakesh Agrawal等人引入了關聯規則以發現由超市的POS系統記錄的大批交易資料中產品之間的規律性。
例如:一家美國連鎖的大型超市進一步分析消費者購買行為後發現,每週五晚上,若顧客購買尿布,經常會同時購買啤酒。背景是因為這些顧客是年輕的爸爸,在星期五下班後,會去超市幫家裡的嬰兒買尿布,也順便帶啤酒,以便在週末時可以邊看球賽邊喝。這家超市挖掘此現象之後,便將一些商品和啤酒、尿布一起搭配販賣,因而獲得了更高的收益。
假設:項目1式資料庫中的某個事件(例如一筆交易)的項目之一,若項目2出現在該事件中的機率為P,且1和2同時發生在資料庫的頻率超過某一個門檻值,那麼「1 → 2 為一條關聯規則」。
關聯規則同樣可以套用在電商的瀏覽網站,以書籍為例,也許你現在想找本懸疑小書,查詢了泰絲.格里森( Tess Gerritsen)的《外科醫生》,常常會發現在同一網站上會出現「瀏覽此商品的人,也瀏覽…」或是「買了此商品的人,也買了…」的訊息, 接著就會看到選更多產品的推薦 ,同時推薦你《東方快車謀殺案 》、《尋找消失的女孩 》…等 ,你就會因為這樣,又多放了幾本書在購物車。
此類資訊可以作為做出促銷定價或產品置入等行銷活動決定的根據。除了上面舉例超商及購買書籍的的例子以外, 關聯規則現在還被用在許多應用領域中,包括網路用法挖掘、入侵檢測、連續生產及生物資訊學中。與序列挖掘相比,關聯規則學習通常不考慮在事務中、或事務間的專案的順序。
以下簡單介紹關聯規則的基本概念,以及其常見的6種分類。
關聯規則的基本概念
來個假設題目!
假設 I={i1,i2,i3……im}是一個項目集合,T={t1,t2,t3,……tn}是一個事務集合,每個事務ti是一個項目集合,ti是I的子集,一個關聯規則就如同X→Y的蘊涵關係,其中X包含於I,Y包含於I,這稱為一個項集。
用數學描述較難理解,可以從賣場購物來舉例:
在賣場中,所有的商品都是一個很大的集合,相當項目集合I;客人第一次的購買紀錄是一個事務,假設有客人在賣場買了牛肉、高麗菜、紅蘿蔔都是一個事務,另一個客人買了網球拍、網球、運動鞋也是一個事務。
而{牛肉,高麗菜,紅蘿蔔}、{網球拍,網球,運動鞋}都是所有商品的子集,買了網球拍又買了網球就是一個關聯規則, 可以寫作網球拍→網球。
支持度和置信度
同時還有兩個名詞需要理解,就是支持度和置信度,
- 支持度: T中的交易同時包含X和Y, sup=(X∪Y).count/n
- 置信度: T中包含X的事務、同時包含Y, conf=(X∪Y).count/X.count
舉圖19-1為例,這包含6個事務的事務集合:
項集I= {網球拍,網球,運動鞋,羽毛球}。
考慮關聯規則:網球拍→網球,事務1,2,3,4,6都包含網球拍,而事務1,2,6同時包含網球拍和網球,支持度 [sup=3/6] ,置信度[conf=3/5] 。關聯規則:網球拍→網球,能認為購買網球拍和購買網球間存在強關聯性。
若支持度太小,說明相應規則可能只是偶然發生,在商業環境中覆蓋太少案例的規則,通常沒有價值。置信度則決定規則的可預測度,若規則的置信度太低,很能從X判斷出Y,在應用上也沒有太多用處。
給一個事務數據集合,要如何找出關聯規則?可以透過關聯規則挖掘算法,只是效率有所不同。但要把握一個觀念,在同樣的關聯規則下,挖掘出的關聯規則應該是相同的。
以下分享常見的6種分類:
關聯規則常見的6種分類
1、所處理的值的類型
(1) 布林關聯規則 Boolean association rules
如果考慮關聯規則中的資料項是否出現, 這種關聯規則是布林關聯規則。
(2) 數量關聯規則 quantitative association rules
如果關聯規則中的資料項是數量型, 這種關聯規則稱為數量關聯規則。
如:年齡("20-25") → 購買("網球拍"),年齡是一個數量型的資料項。在這種關聯規則中,一般將數量離散化(discretize)為區間。
2、所涉及的資料維數
(1) 單維關聯規則 single-dimensional association rules
如果關聯規則各項只涉及一個維度,它是單維關聯規則。
如: 購買("網球拍")→ 購買("網球"),只涉及「購買」一個維度。
(2) 多維關聯規則 multi-dimensional association rules
如果關聯規則涉及兩個或兩個以上維度,它是多維關聯規則 。
如:年齡("20-25")→ 購買("網球拍"),涉及「年齡」和「購買」兩個維度。
3、所涉及的抽象層次
(1) 單層關聯規則 single-level association rules
如果不涉及不同層次的資料項,得到的是單層關聯規則。
(2) 廣義關聯規則 generalized association rules
在不同抽象層次中挖掘出的關聯規則稱為廣義關聯規則。
如:年齡("20-25") → 購買("HEAD網球拍")和年齡("20-25") → 購買("網球拍")是廣義關聯規則,因為"HEAD網球拍"和"網球拍"屬於不同的抽象層次。
以上是「關聯規則學習」的概念、應用、分類方式,期望讓你對於「關聯規則學習」有更近一步的認識。
緯育TibaMe已經有10萬人次來學習AI/資料科學知識或技術,若你想進一步了解或學習 AI / 資料科學的相關知識或技能,歡迎來TibaMe 👉 https://bit.ly/3o4N39e
下篇將與大家分享 什麼是線性回歸?
每週4則,每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。
若你想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或你有其他想了解的主題歡迎在下方留言讓我們知道唷!
參考資料