基于python實現RFM分析

CREATED BY TAO


一 .什么是RFM分析,RFM分析是根據客戶活躍程度和交易金額貢獻,進行客戶價值細分的一種客戶細分方法。

RFM由R(Recency)進度,F(Frequency)頻度,M(Monetary)額度組成。R表示客戶最近一次交易時間的間隔。R值越大,表示客戶交易發生的日期越久。R值越小,表示客戶交易發生的日期越近。R表示客戶在最近一段時間內交易的次數。F值越大,表示客戶交易越頻繁。F值越小,表示客戶越不活躍。M表示客戶在最近一段時間內交易的金額。M值越大,表示客戶價值越高。M值越小,表示客戶價值越低。這樣不同分類組合,就形成了八種客戶類型.


RFM的八種客戶類型

RFM的分析過程

FRM=100*R_S+10*F_S+1*M_S


.接下來就是基于python來進行RFM分析


將csv數據導入python
查看數據框維度和數據框內的數據類型
一共有5列數據,每列有76050行
數據雖然有5列,5個字段,但真正參與分析的只有4個字段USERID、ORDERDATE、ORDERID、AMOUNTINFO

USERID列為客戶ID、ORDERDATE列為時間列、OEDERTD列為訂單ID、AMOUNTINFO列為金額列

可以看出有缺失值的列為ORDERDATE列和AMOUNTINFO列

第一步:進行數據清洗

查看AMOUNTINFO列中的最大值為30999
查看AMOUNTINFO列中的最大值為為0.5

(1)刪除所有空值的行

刪除所有為空值的行,并把數據添加到dt數據框中

(2)篩選AMOUNTINFO列的數據,因為金額的最小值為0.5,數值<1,因此要提取出AMOUNTINFO列中>1的數據進行分析

將數據提取出來后依然放入dt數據框,按照金額大小降序排列
查看dt數據框的維度和數據類型
刪除和提取數據之后?dt數據框一共有5列數據,每列有75240行

(3)處理時間列的數據類型

已知時間列ORDERDATE的數據類型為Object、字符型
將ORDERDATE列處理為日期數據類型
查看ORDERDATE列的數據類型 為'<M8[ns]'
如上圖

第二步:進行數據分析

(4)求日期到現在的距離

求日期到現在的距離,并把結果數據放入datediff列中
如上圖

(5)從時間距離中獲得天數

從時間距離中獲得天數
如上圖

(6)統計每個用戶距離現在多久沒有消費了,找到最小的最近消費距離

找出最近消費距離數據放入r_agg數據框中
查看r_agg列的數據維度,一共有2列,每列55143行

(7)統計每個用戶交易的總次數,即對訂單數計數

找出交易次數數據放入f_agg數據框中??
查看f_agg列的數據維度,一共有2列,每列55143行

(8)統計每個用戶交易的總金額,即對每次的交易金額求和

找出交易金額數據放入m_agg數據框中? ??
查看m_agg列的數據維度,一共有2列,每列55143行

(9)使用merge函數把r_agg、f_agg、m_agg三個數據框關聯起來

把三個數據框關聯起來并放入aggData數據框中
更改aggData數據框的列名

FRM=100*R_S+10*F_S+1*M_S

(10)求R_S的得分?

把得分數據放入r_s數據框中

最近消費距離列(recencyAgg)按照從小到大順序排列,間隔距離越大也就是recencyAgg列的值越大,得分越小

因此,標簽rlabels按照從大到小排列。

(11)求F_S的得分?

把得分數據放入f_s數據框中

消費頻次列(requencyAgg)的數據并未呈正態分布,所以未使用quantile函數,而是查看數據的分布情況按照分布情況的從小到大順序進行排列,消費頻次越大也就是frequencyAgg列的值越大,得分越大

因此,標簽flabels按照從小到大排列。

(12)求M_S的得分

把得分數據放入m_s數據框中

消費金額列(monetaryAgg)按照從小到大的順序排列,消費金額越大也就是monetaryAgg列的值越大,得分越大

因此,標簽mlabels按照從小到大排列。

(13)將r_s、f_s、m_s添加到數據框aggData中

添加到數據框aggData中
查看aggData數據框中各列的數據類型

(14)將r_s、f_s、m_s列數據類型轉換成數值型(int),再計算RFM得分


計算RFM得分

(15)為RFM得分添加標簽

為RFM得分添加了標簽并分成了八類,將數據放入level數據框中


如上圖

(16)對客戶等級列(level)進行分組,按照客戶ID進行計數統計,并把數據放入customerlevels數據框中

將分組后的數據放入customerlevels數據框中
如上圖



結論:

RFM模型可以對客戶的終生價值做一個合理的預估,基于一個理想的客戶特征來衡量現實中客戶價值的高低,通過此類分析,定位最有可能成為品牌中式客戶的群體,讓我們把主要精力放在最有價值的用戶身上開展精準營銷。

細分出來的客戶類型分布情況
各類客戶的占比情況



CREATED BY TAO

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。

推薦閱讀更多精彩內容