過去投放廣告較專注在類似受眾、廣泛受眾和針對瀏覽行為進行再行銷,比較少針對消費過受眾進行投放;此次利用 Python 寫出了 RFM 模型的程式碼,可以快速計算出 RFM 用戶表現,此篇提供程式碼供大家參考。
Table
一. RFM模型介紹
在眾多 CRM 客戶資料分析中,RFM 模型是被最常被廣泛提到的,其中的三大要素為 R(Recency)、F(Frequency)、M(Monetary):
- 最近一次消費 (Recency)
- 消費頻率 (Frequency)
- 消費金額 (Monetary)
RFM 模型能將顧客資料分類後,可以針對不同類型顧客提供給予不同優惠,不同產品組合或是進行類似受眾廣告投遞;進而節省行銷預算上不必要的浪費。
延伸閱讀:
二. RFM模型需準備的會員資料
- OrderId:訂單編號
-
order_date:訂單日期
- TotalCharges:訂單花費
三. RFM模型程式碼
1. 設定 RFM 級距
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
quantile_r = rfmTable["recency"].quantile(q=[0.25,0.5,0.75]) quantile_f = rfmTable["frequency"].quantile(q=[0.25,0.8,0.95]) quantile_m = rfmTable["monetary_value"].quantile(q=[0.25,0.5,0.85]) quantiles = {"recency" : quantile_r.to_dict() , "frequency" : quantile_f.to_dict(), "monetary_value" : quantile_m.to_dict()} rfmSegmentation = rfmTable def RClass(x,p,d): if x <= d[p][0.25]: return 4 elif x <= d[p][0.50]: return 3 elif x <= d[p][0.75]: return 2 else: return 1 def FClass(x,p,d): if x <= d[p][0.25]: return 1 elif x <= d[p][0.80]: return 2 elif x <= d[p][0.95]: return 3 else: return 4 def MClass(x,p,d): if x <= d[p][0.25]: return 1 elif x <= d[p][0.50]: return 2 elif x <= d[p][0.85]: return 3 else: return 4 |
2. 計算 RFM
1 2 3 |
rfmSegmentation['R_Quartile'] = rfmSegmentation['recency'].apply(RClass, args=('recency',quantiles)) rfmSegmentation['F_Quartile'] = rfmSegmentation['frequency'].apply(FClass, args=('frequency',quantiles)) rfmSegmentation['M_Quartile'] = rfmSegmentation['monetary_value'].apply(MClass, args=('monetary_value',quantiles)) |
最後~
除了本篇 Python 快速計算 RFM 模型外,也推薦閱讀此篇用 SQL 指令方式來計算電商分析指標:
- 用戶活躍度指數 MAU / WAU / DAU
- 會員分類 RFM 模型
- 會員分類 NES 模型
- 用戶留存率 Customer Retention Rate
- 數值區間分類貼標籤 Label
- 計算七日平均 Rolling Averages
- 計算累積加總 Cumulative Sum
延伸閱讀:
那 [數據分析] Python快速計算RFM模型 就到這邊感謝收看感謝收看,如文章內容有誤請不吝指正!
有關 Max行銷誌的最新文章,都會發佈在 Max 的 Facebook 粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!
Max行銷誌:https://www.facebook.com/maxlist25/