Python使用RMF聚類分析客戶價值

  • 2019 年 11 月 15 日
  • 筆記

投資機構或電商企業等積累的客戶交易數據繁雜。需要根據用戶的以往消費記錄分析出不同用戶群體的特徵與價值,再針對不同群體提供不同的營銷策略。

用戶分析指標

根據美國資料庫營銷研究所Arthur Hughes的研究,客戶資料庫中有三個神奇的要素,這三個要素構成了數據分析最好的指標

R-最近一次消費(Recency)  F-消費頻率(Frequency)  M-消費金額(Monetary)

image

通過該圖將用戶進行分類:

R、F、M都很高,重要價值客戶(VIP客戶)  F、M很高,R不高,重要保持客戶  R、F、M都很低,流失客戶  M很高,R、F不高,重要挽留客戶

根據這8個類別的R、F、M指標,對用戶進行標註,哪些是重要價值客戶,哪些是重要保持客戶,哪些是重要發展客戶,哪些是流失客戶等

流程介紹

以R、F、M這三個核心指標為維度進行聚類分析  利用K-means聚類分析將用戶分類  根據R、F、M指標,對用戶進行標註

準備工作: 數據: 某電商企業客戶近期購買的數據。包含客戶註冊日期,最後購買日期以及購買消費總金額

參數:

R-求出最近一次投資時間距提數日天數  F-月均投資次數  M-月均投資金額

目標:分析客戶交易數據,用戶群體的特徵與價值,進行精準營銷,降低營銷成本,提高銷售業績。

1 分析數據獲取RFM

R-求出最近一次投資時間距提數日天數

確定一個提現日,減去用戶的最新投資日期

F-月均投資次數

總投資次數/總月數

M-月均投資金額

投資總金額/總月數

image

處理數據獲取R-F-M

image.png

2 訓練KMeans模型

先對數據進行轉換,然後通過K—Means模型訓練,生產模型

image.png

3 通過模型對用戶標註

image.png

image.png

通過模型對新用戶標註

1、獲取新用戶數據  2、通過和原數據處理獲取RFM  3、通過訓練模型得出用戶類型      def user_classes(cdata, user_info):  '''  # 模擬一條用戶數據  1、獲取當前時間表示為截止時間  2.計算出: R F M  '''    R, M, F = user_info_change(user_info)    user_data_info = DataFrame([[R], [F], [M]]).T    print(user_data_info)      # user_data_info = DataFrame([[12.5], [18.0], [20000.0]]).T    user_data_info.index = ["lily"]    user_data_info.columns = cdata.columns    print("cdata_info:n", user_data_info)      new_zcdata = (user_data_info-cdata.mean())/cdata.std()    print("new_zcdata", new_zcdata)      kModel = load_model("user_classes.pkl")    ret = kModel.predict(new_zcdata)    print("new_zcdata_ret:", ret)    # new_zcdata_ret: [3]