用 PowerBI 交叉購買分析實現購物車推薦演算法

  • 2019 年 10 月 6 日
  • 筆記

介紹

交叉購買分析,有時也叫購物車分析,一般用於判斷同時購買某幾種產品組合的用戶偏好,以便向用戶推薦產品。在PowerBI中當然也可以完成類似的分析。

在這個案例中,我們適度簡化了需求以便達到快速理解掌握的目的。我們需要計算:在選擇一個基準產品類別A時,觀察購買A而且同時購買B的用戶量,以及佔比。

模型

基本模型並沒有什麼需要特別介紹之處。需要特別支出的是,在PowerBI中如果需要使用同樣的表來做篩選,是無法使用同一個表的。例如在本例中的產品表,它需要同時用做兩次篩選器,類似的案例包括同時選擇日期表,一個簡單的做法就是創建它的副本,在PowerBI中可以使用計算表完成,如下:

這時會產生虛關係,如下:

因為無法同時連接訂單到兩個產品表,在計算的時候就需要啟動虛關係來完成。

計算

首先,選擇產品切片器的一個值作為A類,然後觀察作為產品B類的變化,如果不考慮A的話,那購買B的客戶數很快就可以求出,如下:

這裡值得注意的,由於邏輯本身,是不去考慮同時選擇某X類產品又同時選擇某X類產品的,所以一旦出現同類排列,則按空來計算。

那麼,購買A類產品同時購買B類產品的客戶數為:

這裡分成兩步完成計算,首先先計算買過A類產品的客戶(集合),然後用該集合作為篩選器參數來計算購買過B類產品的客戶數。

值得注意的是,這裡要激活虛線關係以使得切片器發揮作用,同時使用ALL來取消已有實線關係的產品表的影響。

另外值得注意的是,在用作CALCULATE篩選器參數的時候,該表雖然是臨時生成的,但卻在底層與訂單表相連接,這是PowerBI能夠靈活進行篩選的底層原理機制。(稱為:lineage,此處首次提出,詳細可參閱《DAX權威指南》或私信交流,能夠正確理解併合理使用lineage機制就可以充分發揮DAX的高級作用機制)

這裡需要注意的另一個重點是:選擇A類產品,計算同時購買AB類客戶的佔比時,是相對於購買A類產品的客戶來計算呢,還是相對於購買B類產品的客戶來計算。這個就留給讀者思考,並一起交流討論吧。

分析

在分析時,這裡採用了散點圖來進行,散點圖是PowerBI可以將多個指標同時進行分析的視覺對象,我們考察:

注意這裡的三點:

  1. 同時購買AB類別的客戶數佔B客戶數的佔比達50.7%。
  2. 觀察散點圖,設備的佔比最大,並不表示其絕對值大。
  3. 觀察散點圖,椅子的絕對值卻最大。

因此,我們需要用散點圖來清晰地發現設備是我們所需要找到的這種具有高推薦度價值的產品類別。

推廣

本例從簡單的場景出發,解釋了交叉購買分析的原理,這個原理首先可以直接應用於分析購買某種特定產品後可能的推薦演算法。從推廣的角度來看,如果考慮了用戶畫像,就可以針對不同用戶畫像下的實際情況來進行推薦。例如:以購買了A類產品(如:桌子)為前提,不同行業不同職業不同年齡段的用戶得到的推薦可能是不同的。在PowerBI中,可以通過切片器來實現這樣的實踐。

Exit mobile version