超級促銷週Claude Skills — 20% 折扣
Glossary

什麼是購物籃分析?指標、範例與應用場景

Powerdrill Bloom·
什麼是購物籃分析?指標、範例與應用場景

購物籃分析是一種用來找出哪些產品會在同一次交易中被一起購買的方法。它會掃描訂單資料,尋找出現頻率高於隨機機率的商品組合。有三個指標可以用來描述每種模式:支持度(support)、信心度(confidence)與提升度(lift)。零售商和線上商店常將其用於交叉銷售、商品組合包和商品陳列。

本指南將說明此方法的工作原理、如何計算各個指標,以及如何解讀結果。同時也會介紹常見的演算法、主要應用場景,以及在根據規則採取行動前值得了解的限制。

什麼是購物籃分析

購物籃分析背後的基本概念非常簡單。每筆訂單都是一個裝滿商品的購物籃。在成千上萬個購物籃中,某些商品會不斷同時出現。這種分析方法能找出這些組合,並衡量每個組合的關聯強度。

分析的輸出結果是一組關聯規則。一條規則寫作「如果購物籃中包含 A,那麼它也很可能包含 C」。A 被稱為前項,C 被稱為後項。兩者都可以是單一商品或商品群組。

用於此工作且被廣泛使用的 Python 函式庫 mlxtend,其官方文件提供了一個經典的範例。它描述了一條規則,指出「購買尿布的人也很可能會購買啤酒」。不論這個搭配在特定的商店中是否成立,它都展現了輸出結果的樣貌。

此技術屬於更廣泛的關聯規則學習領域。mlxtend 文件指出,Apriori 演算法「旨在處理包含交易的資料庫,例如商店顧客的購買記錄」。零售業是此方法的發源地,但任何由購物籃構成的資料都適用。

運作原理

購物籃分析分為兩個階段進行。

第一階段是找出頻繁項目集。項目集是指任何商品群組,例如 {手機殼, 螢幕保護貼}。當它在所有交易中出現的比例達到設定的最低門檻時,即被視為頻繁。您可以自行設定這個最低門檻,稱為支持度門檻。

第二階段是將項目集轉換為規則。演算法會將每個頻繁項目集拆分為前項和後項,並為產生的規則進行評分。mlxtend 文件將規則生成描述為「頻繁模式探勘中的常見任務」。

輸入資料的格式始終相同。每一列代表一筆交易,每一欄標記該商品是否存在於交易中。大多數電子商務平台的訂單匯出資料,都可以透過樞紐分析轉換為這種格式。

在計算任何指標之前,有三個準備步驟會影響最終結果。第一,定義什麼是一筆交易,通常是一個訂單 ID。第二,記錄「是否存在」而非「數量」,因此同一件商品購買三個仍只算一次。第三,選擇細緻度。產品類別會產生較少且較寬泛的規則,而個別 SKU 則會產生更精準但需要更多資料的規則。

三大核心指標

每個規則都會得到三個數值。綜合解讀這些數值,是區分實用規則與巧合的關鍵。

支持度

支持度是指包含該項目集的交易佔所有交易的比例。如果 1,000 筆訂單中有 60 筆同時包含手機殼和螢幕保護貼,則該組合的支持度為 0.06,即 6%。

支持度能告訴您某個模式有多常見。支持度極低的規則可能是真實存在的,但因過於罕見而難以採取實際行動。

信心度

信心度是指在購物籃已包含前項的情況下,出現後項的機率。其計算方式為該組合的支持度除以前項的支持度。

信心度具有方向性。A 導向 C 的信心度通常與 C 導向 A 的信心度不同。下方的實際範例將說明原因。

提升度

提升度是將該組合的實際出現頻率,與兩件商品無關時的預期頻率進行比較。其計算方式為規則的信心度除以後項的支持度。

mlxtend 文件清楚描述了基準點:「如果 A 和 C 相互獨立,提升度分數將剛好為 1。」提升度大於 1 表示這些商品同時出現的頻率高於隨機機率。提升度小於 1 則表示它們同時出現的頻率低於隨機機率。

實際範例

以一家單月有 1,000 筆訂單的線上電子產品商店為例。

指標 數值
包含手機殼的訂單 200
包含螢幕保護貼的訂單 100
同時包含兩者的訂單 60
該組合的支持度 60 / 1,000 = 0.06
信心度(手機殼 ➔ 螢幕保護貼) 0.06 / 0.20 = 0.30
信心度(螢幕保護貼 ➔ 手機殼) 0.06 / 0.10 = 0.60
提升度 0.30 / 0.10 = 3.0

用通俗的話來解讀結果:在購買手機殼的顧客中,有三成也購買了螢幕保護貼;在購買螢幕保護貼的顧客中,有六成也購買了手機殼。該組合同時出現的頻率是隨機機率的三倍。

當取得完整的規則表時,請依照固定順序進行解讀。首先,按提升度排序以找出最強的關聯。接著,剔除低於最低支持度門檻的規則,因為它們過於罕見,不具實用價值。最後,利用信心度來決定推薦的方向。

這兩個信心度數值會導向不同的行動。向購買螢幕保護貼的顧客推薦手機殼是較強的推薦方案,因為他們之中已有 60% 的人會這樣購買。雙向的提升度是相同的,這也是為什麼提升度是衡量關聯本身強度更好的指標。

其他值得了解的指標

雖然三大核心指標已能滿足大部分需求,但相關函式庫還會提供其他指標,以協助過濾掉強度較弱的規則。

槓桿度用於衡量實際共同出現次數與預期次數之間的差距。mlxtend 文件將其定義為比較實際共同出現頻率與「若 A 和 C 相互獨立時的預期頻率」。槓桿度為 0 表示兩者相互獨立。

確信度用於衡量後項對前項的依賴強度。與提升度類似,數值為 1 表示相互獨立。數值越高,代表該規則失效的頻率比隨機機率所預測的還要低。

在實際應用中,大多數團隊會先按提升度對規則進行排序,然後篩選出符合最低支持度和信心度門檻的規則。這種組合能找出關聯性強、足夠常見且可靠的模式。

演算法:Apriori 與 FP-Growth

Apriori 是經典的演算法。mlxtend 文件引用了 Agrawal 和 Srikant 於 1994 年發表關於快速挖掘關聯規則演算法的論文作為其來源。Apriori 逐層建立項目集,並剪枝任何子集不頻繁的項目集,從而使搜尋規模保持在可控範圍內。

FP-Growth 則是透過不同的途徑來找出相同的頻繁項目集。mlxtend 文件將其描述為「已成熟的 Apriori 演算法的熱門替代方案」。它會建立一個頻繁模式樹,且不需要產生候選項目集。文件指出,這使得它「對大型資料集特別具吸引力」。

支持度門檻在兩種演算法中的運作方式相同。mlxtend 文件提供了一個簡單的範例:在門檻為 0.5 時,頻繁項目集必須出現在至少一半的交易中。零售業的門檻通常要低得多,因為即使是熱門的商品組合,也僅佔總訂單的一小部分。

對於大多數商業問題而言,演算法的選擇只會影響運算速度,而不會改變結果。在相同的支持度門檻下,兩者會返回相同的項目集。

購物籃分析的應用場景

購物籃分析最常用於零售業和電子商務,但其應用場景不僅限於此。

  • 交叉銷售。當購物車中包含前項商品時,在結帳頁面推薦後項商品。
  • 商品組合包。將提升度高的商品打包成單一優惠進行銷售。
  • 商店與網頁版面配置。將經常成對購買的商品擺放在相鄰位置,無論是在實體貨架上還是產品網頁上。
  • 庫存規劃。將成對的商品一起備貨,以免其中一種商品缺貨時,在無形中抑制了另一種商品的銷量。
  • 內容與媒體。將使用者的單次瀏覽工作階段視為一個購物籃,找出哪些文章或影片會被一起觀看。
  • 服務業。在銀行或電信業中,將每位客戶申辦的產品視為一個購物籃,找出哪些產品組合通常會一起被申辦。
  • 行銷活動評估。比較特定商品組合在活動前與活動期間的提升度。提升度若有顯著增長,說明活動改變了購買行為,而不僅僅是提升了銷售總量。

每個應用場景都源自於同一個問題:當顧客選擇了某樣東西時,他們還傾向於選擇什麼?

後續採取的行動應與信心度的方向相匹配。當兩件商品通常會被同時需要時,適合採用組合包;而當購買某件商品能穩定導向另一件商品時,則適合在結帳時進行推薦。

購物籃分析與相關方法的比較

購物籃分析經常與客戶細分和推薦引擎混淆。下表展示了它們之間的差異。

方法 分析單位 核心問題 典型輸出
購物籃分析 交易 哪些商品會一起被購買? 包含支持度、信心度與提升度的關聯規則
客戶細分 客戶 哪些客戶具有相似特徵? 具有共同特徵的客戶群組
協同過濾 客戶與商品歷史記錄 這個人接下來會喜歡什麼? 個人化推薦
同期群分析 按起始日期分組 行為如何隨時間變化? 留存曲線與留存表

這些方法相輔相成。客戶細分可以告訴您誰是高價值客戶,而購物籃分析則可以告訴您這些客戶會一起購買哪些商品。我們關於如何建立 客戶細分報告 的指南涵蓋了前半部分,而關於 同期群分析 的說明則涵蓋了時間維度。

值得了解的限制

購物籃分析產生的規則非常實用,但也很容易被過度解讀。

共同出現並不等於因果關係。高提升度的商品組合僅代表這兩件商品會被一起購買,並不代表購買其中一件會直接導致購買另一件。

門檻設定會影響最終結果。如果支持度門檻設得太高,您可能會錯過小眾但有價值的商品組合;如果設得太低,則會產生數千條規則,其中大部分都是雜訊。

稀有商品容易被忽略。一個月僅被購買幾次的高價商品,即使與其他商品的關聯性很強,也可能永遠無法達到支持度門檻。

退貨和取消訂單會扭曲購物籃資料。如果退貨商品仍保留在資料中,分析就會將顧客最終退回的商品組合計算進去。我們關於 產品退貨報告 的指南介紹了如何單獨衡量這一維度。

商品組合過多會導致出現虛假模式。一個包含 500 種商品的目錄有超過 100,000 種可能的商品組合。其中一些組合僅憑巧合就會顯示出高提升度。在根據重要規則採取行動之前,請先用另一段時期的資料進行驗證。

時間因素至關重要。節慶期間的購買模式在春季可能並不適用。在調整陳列或推出組合包之前,請先針對具可比性的時期進行分析。

如何在不撰寫程式碼的情況下進行分析

傳統的方法是使用 Python 搭配 mlxtend 等函式庫,或是使用 SQL 來計算商品組合。這兩種方法都需要將訂單資料重塑為每列代表一筆交易、每欄代表一項商品的格式。

試算表可以處理規模較小的資料。樞紐分析表可以計算每件商品的訂單數,而 COUNTIFS 公式則可以計算同時包含某個組合中兩件商品的訂單數。其限制在於資料規模,因為可能的商品組合數量會隨著商品目錄的增加而迅速增長。

AI 工作空間可以直接從一般的訂單匯出檔案中進行資料重塑和計數。Powerdrill Bloom 在所有方案中都支援上傳 Excel 和 CSV 檔案。您可以直接詢問哪些產品最常被一起購買,並要求提供前幾名商品組合的支持度、信心度與提升度。

建議先從類別層級開始執行,以觀察大致的模式。接著,再針對最重要的類別在 SKU 層級重新執行分析。

檢查輸出結果的方式與檢查指令碼相同。確認交易總數、手動抽檢一組商品組合,並確保已排除退貨訂單。CSV AI 助理頁面展示了以檔案為核心的工作流程。

如果您您已準備好訂單匯出檔案,可以嘗試使用 Powerdrill Bloom 進行分析,並將排名前幾的商品組合與您團隊的預期進行比較。

常見問題

簡單來說,什麼是購物籃分析?

這是一種找出顧客傾向於一起購買哪些產品的方法。它透過分析大量訂單,衡量每個商品組合出現的頻率,並與隨機機率下的預期頻率進行比較。

購物籃分析中的提升度是什麼?

提升度是將兩件商品同時出現的頻率,與兩者無關時的預期頻率進行比較。提升度為 1 表示沒有關聯;大於 1 表示它們同時出現的頻率高於預期,小於 1 則表示低於預期。

如何計算支持度與信心度?

支持度的計算方式是包含該項目集的交易數量除以總交易數量。信心度則是該組合的支持度除以前項的支持度。兩者通常以小數或百分比表示。

購物籃分析使用哪種演算法?

Apriori 是經典的演算法,而 FP-Growth 則是常見且速度更快的替代方案。兩者都是從交易資料中找出頻繁項目集,然後再從這些項目集中產生規則並進行評分。

可以在 Excel 中進行購物籃分析嗎?

可以,但僅適用於小型資料集。您可以使用樞紐分析表計算每件商品的訂單數,並使用 COUNTIFS 計算包含特定商品組合的訂單數。對於大型商品目錄,商品組合的數量會迅速增長,因此使用指令碼或 AI 工具會更實用。

資料來源: mlxtend, Association rules · mlxtend, Apriori。本實際範例所使用之數據僅供說明參考。