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]