【資料科學入門】購物車裡的秘密 — 關聯分析是什麼?Apriori演算法介紹

Rebecca
Taiwanese in Data Science
8 min readSep 27, 2020

文/ Rebecca Lin、Iris Chuang

圖片來源:https://www.analyticsvidhya.com/blog/2014/08/effective-cross-selling-market-basket-analysis/

在電商高速發展時代,商家都希望能夠提供自己的消費者更好的購物體驗,最直接了解客戶的方式就是追蹤其在商店內的消費紀錄,透過歷史消費數據能夠讓我們掌握每一位客戶的喜好與需求,商家也可以透過了解客戶消費習慣,調整不同的銷售模式。

本篇文章包含三個部分,首先介紹使用關聯分析的目的、衡量指標,接下來會利用一個簡單的例子說明Apriori的原理,最後會提到關聯分析適合的應用場景!

1. 為什麼需要關聯分析?

我們常聽到「 交叉銷售 」(cross selling) 「 追加銷售 」(up selling),交叉銷售是指推薦客戶相關的商品,像是我們購物中時常看到的「看此分類的人也看了……」,讓客戶找到更多所需商品 ; 而追加銷售則是推薦客戶購買更多,兩者皆是透過整體客戶購買商品間的相關性進行商品推薦。

那我們應如何針對購買的商品進行關聯性分析呢?這時我們可以透過 Apriori 演算法來完成此分析,Apriori 是「關聯分析(Associative Analysis)」中的經典演算法之一,由 Rakesh Agrawal 和 Ramakrishnan Srikant 在1994年提出,目標在大量的購物紀錄清單中,找出不同商品與商品之間可能存在的關係

2. 關聯分析衡量的指標

於消費的紀錄中,我們能夠得知每一筆交易紀錄中所涵蓋的商品項目有哪些,以下圖為例,每一個購物籃皆為一筆交易 (Transaction),購物籃中的商品為此筆交易中所涵蓋的商品內容 (Item),當我們有這些數據時,我們就能夠進行關聯分析囉!

關聯分析主要透過「 支持度 」(Support)、「 信賴度 」(Confidence)與「提升度」(Lift)這三個指標,來衡量商品項目之間的關聯性。

  • 支持度(Support):某商品在資料集出現的次數比例。例如:以上圖為例有 5 筆交易紀錄,有 3 筆交易有購買尿布,則 support (尿布)= 60%,而巧克力因只有出現一次的購買,則 support (巧克力)= 20%。除了單件商品的支持度,也可以計算兩件商品的支持度,如 support(尿布->啤酒)= 3/5 = 60%。
  • 信賴度(Confidence):某一個種類 (A) 中,含有另一個種類 (B) 的比重,也就是在 A 出現的情況下,B 出現的機率值,以上圖為例,
    我有 5 筆交易紀錄,其中 3 筆買過尿布,而這 3 筆買過尿布的當中,又另有 3 人買過啤酒,則confidence (尿布->啤酒) = 3/3 = 100% 。
  • 提升度(Lift):某一個以規則組合出現及單獨出現的比值,公式為confidence(A->B) / support(B) ,提升度>1或越高表示兩個商品越相關、提升度=1表示為互相獨立、提升度<1或越低代表負相關性越高。帶入上述例子可表示成 lift (尿布->啤酒) = 100/80 = 1.25 。

3. 關聯分析的原理 — Apriori Algorithm

(以下的圖及介紹來自:Apriori Algorithm — Know How to Find Frequent Itemsets

1. 購買記錄如下,第1欄TID是交易代碼,第2欄Items是這筆交易中所有購買的商品,例如:在第一筆交易中(T1)購買了 1, 3, 4 這三項商品。

2. 在 Apriori 演算法中通常設定最小支持度(Min support),以濾掉比較少購買或是較不暢銷的商品,在這邊最小支持度(Min Support)設為2,4號商品只有被購買過一次,所以會被過濾掉,F1的結果就是過濾掉4號商品後,每個商品的被購買次數。

計算各個商品購買次數
4號商品未通過最小支持度,予以刪除

3. 接下來會找包含2項商品的所有組合,再算一次每個組合的Support,一樣過濾掉 Support<2 的商品組合,商品組合 {1,2} 只有被購買一次所以會被過濾掉,結果在F2。

4. 依此類推,接下來找出,包含3項商品的所有組合,這邊只要組合中的任兩項商品不在F2中,那在3項商品組合時就會被過濾掉。

5. 只剩下兩項商品組合,就直接把它們合併,只有一項4合一商品組合,計算Support,小於2過濾掉。

在第4、5步驟,基於Apriori的兩個定理,會把部分集合不符的組合過濾掉:

  • 假設一個集合 {A,B} 大於最小支持度(Min Support),則它的子集合 {A}, {B} 出現次數必定大於最小支持度。
  • 假設集合 {A} 出現次數小於最小支持度,則它與其他商品的集合,如 {A,B},必定小於最小支持度。

接著,把符合條件的商品組合,分別計算各項統計量,再進一步篩選即可

4. 關聯規則

根據F3結果,得出以下的商品組合:

I = {1,3,5},子集為: {1,3}, {1,5}, {3,5}, {1}, {3}, {5}

I = {2,3,5},子集為: {2,3}, {2,5}, {3,5}, {2}, {3}, {5}

在這邊我們假設最小信賴度(Min Confidence)為 60%

  1. 顧客買{1,3},是否推薦 5?
    Confidence = support(1,3,5) / support(1,3) = 2/3 = 66.66%
  2. 顧客買{1,5},是否推薦 3?
    Confidence = support(1,3,5) / support(1,5) = 2/2 = 100%
  3. 顧客買{3,5},是否推薦 1?
    Confidence = support(1,3,5) / support(3,5) = 2/3 = 66.66%
  4. 顧客買{1},是否推薦 {3,5}?
    Confidence = support(1,3,5) / support(1) = 2/3 = 66.66%
  5. 顧客買{3},是否推薦 {1,5}?
    Confidence = support(1,3,5) / support(3) = 2/4 = 50%
  6. 顧客買{5},是否推薦 {1,3}?
    Confidence = support(1,3,5) / support(5) = 2/4 = 50%

依此類推,我們就可以找出所有的推薦規則了。

5. 關聯分析的應用場景

  1. 購物籃分析:通過分析商品銷售記錄,參考哪些商品經常一起出售,理解用戶購物行為,能夠應用到市場營銷、物品擺放、庫存管理、商品定價等環節。其中著名的商業應用就是啤酒和尿布的關係。
  2. 共同詞分析:對於給定的搜索詞,發現推文中頻繁出現的單詞集合。
  3. 流行趨勢分析:從新聞網站點擊瀏覽中分析新聞流行趨勢,分析哪些類型新聞將被用戶瀏覽到。
  4. 搜尋引擎推薦:在用戶輸入查詢時推薦同時相關的查詢詞項。如:今日頭條的推薦搜索,相關詞搜索等。

下一篇的【資料科學入門】,會教大家如何用程式進行Apriori關聯分析,也會進一步提到 lift 值的計算與判斷,敬請期待!

如果喜歡這篇文章,可以幫我們拍手 👏 👏👏 50下,並且follow我們的最新文章,支持我們繼續努力! (找找左側或左下角 “拍手符號👏”,長按可以連拍50下喔)

--

--