案例分析:基于RFM的客戶價值分析模型
本文用具體實例的方式,在RFM的基礎上構建客戶價值分析模型,探討如何對客戶群體進行細分,以及細分后如何進行客戶價值分析。最終得到LRFMC模型,并將客戶群體細分為重要保持客戶、重要發展客戶、重要挽留客戶、一般客戶、低價值客戶五類。
本文原始數據與分析思路來自《Python數據分析與挖掘實戰》第七章,感謝這本書提供的數據集與分析框架。(這本書很不錯,推薦)
一、背景與目標
1.1 背景
在面向客戶制定運營策略、營銷策略時,我們希望能夠針對不同的客戶推行不同的策略,實現精準化運營,以期獲取最大的轉化率。精準化運營的前提是客戶關系管理,而客戶關系管理的核心是客戶分類。
通過客戶分類,對客戶群體進行細分,區別出低價值客戶、高價值客戶,對不同的客戶群體開展不同的個性化服務,將有限的資源合理地分配給不同價值的客戶,實現效益最大化。
在客戶分類中,RFM模型是一個經典的分類模型,模型利用通用交易環節中最核心的三個維度——最近消費(Recency)、消費頻率(Frequency)、消費金額(Monetary)細分客戶群體,從而分析不同群體的客戶價值。
在某些商業形態中,客戶與企業產生連接的核心指標會因產品特性而改變。如互聯網產品中,以上三項指標可以相應地變為下圖中的三項:最近一次登錄、登錄頻率、在線時長。
1.2 目標
本實例借助某航空公司客戶數據,探討如何利用KMeans算法對客戶群體進行細分,以及細分后如何利用RFM模型對客戶價值進行分析,并識別出高價值客戶。
在本實例中,主要希望實現以下三個目標:
- 借助航空公司客戶數據,對客戶進行群體分類
- 對不同的客戶群體進行特征分析,比較各細分群體的客戶價值
- 對不同價值的客戶制定相應的運營策略
二、分析過程
2.1 分析思路
本實例的數據包含了2012年4月1日至2014年3月31日期間的客戶數據,共有6萬余條記錄。分析中需要用到KMeans算法,且需要將數據分析的結果可視化,便于后期的結論分析,于是采用以下兩種工具進行分析:
- jupyter notebook(Python 3.6 )
- Excel 2016
同時數據的屬性定義見下表所示,可見維度非常豐富。
考慮到商用航空行業與一般商業形態的不同,決定在RFM模型的基礎上,增加2個指標用于客戶分群與價值分析,得到航空行業的LRFMC模型:
- L:客戶關系長度。客戶加入會員的日期至觀測窗口結束日期的間隔。(單位:天)
- R:最近一次乘機時間。最近一次乘機日期至觀測窗口結束日期的間隔。(單位:天)
- F:乘機頻率。客戶在觀測窗口期內乘坐飛機的次數。(單位:次)
- M:飛行總里程。客戶在觀測窗口期內的飛行總里程。(單位:公里)
- C:平均折扣率。客戶在觀測窗口期內的平均折扣率。(單位:無)
首先對原始數據進行探索,清洗異常記錄,再根據上述公式將原始數據表變換得到LRFMC模型建模需要的新數據表,接著對新數據表的數據進行屬性規約、數據變換、Python建模、結果分析,便能得到最終的結果。
總體思路與流程見下圖:
由于本實例中的數據已經得到,便不需要在業務系統中抽取數據,直接開始對數據進行預處理即可。
2.2 數據預處理
2.2.1 數據探索
經過初步的數據探索,發現數據有幾點特征:
- 共62988條記錄
- 部分維度存在缺失值,WORK_CITY缺失2269條,SUM_YR_1缺失551條,SUM_YR_2缺失138條
2.2.2 數據清洗
此處主要清洗兩類異常數據:
- 缺失值:票價為null的數據(注意不是票價為零)
- 異常值:票價為0、平均折扣率不為0、總飛行公里數大于0的數據(折扣不為0,仍有飛行里程,說明客戶必然是花錢買票飛行的,如果此時票價也為0,說明是錯誤數據)
共清洗944條異常數據,得到62044條有效記錄。
2.2.3 屬性規約
根據LRFMC模型,選取與模型強相關的6個屬性:LOAD_TIME、FFP_DATE、LAST_TO_END、LIGHT_COUNT、SEG_KM_SUM、avg_discount。刪除其他冗余的、弱相關的屬性,得到屬性選擇后的數據集。
2.2.4 數據變換
構建包含L、R、F、M、C五項指標的新數據表,并對應屬性定義表,得到LRFMC模型中五項指標的計算公式:
- L = LOAD_TIME – FFP_DATE. (觀測窗口結束日期 – 入會日期)
- R = LAST_TO_END. (最后一次乘機時間至觀測窗口結束時長)
- F = FLIGHT_COUNT. (觀測窗口內的飛行次數)
- M = SEG_KM_SUM. (觀測窗口的總飛行公里數)
- C = AVG_DISCOUNT. (平均折扣率)
利用2.2.3中的數據表計算得到變換后的數據表:
結果如下圖所示:
從表中可以發現:每個指標的數據取值范圍分布較廣,為提高后續聚類分析的準確性,還需要將L、R、F、M、C五類數據進行標準化處理。標準化方法有極大極小標準化、標準差標準化等方法,此處采用標準差標準化的方法對數據進行處理。
結果如下圖所示:
標準差標準化后,得到包含ZL、ZR、ZF、ZM、ZC五項指標的數據集。
2.3 數據建模
客戶價值分析模型構建主要分為兩個部分:
- 利用K-Means算法對客戶進行聚類分析,得到細分的客戶群
- 對細分的客戶群進行特征分析,得到客戶價值分析模型
2.3.1 聚類分析
采用K-Means聚類算法對客戶數據進行分群,共分為5類:
得到結果后,將結果轉化為DataFrame對象:
以及對62044位客戶貼上群體標簽,記為1、2、3、4、5五類,并輸出帶有標簽的Excel文件。結果如下圖所示:
2.3.2 特征分析
對2.3.2中的聚類結果進行特征分析,如下圖所示:
分析:
- 群體1的C屬性上最大
- 群體2的M、F屬性屬性最大,R屬性最小
- 群體3的L、C屬性最小
- 群體4的R屬性最大,F、M屬性最小
- 群體5的L屬性最大
其中每項指標的實際業務意義為:
- L:加入會員的時長。越大代表會員資歷越久
- R:最近一次乘機時間。越大代表越久沒乘機
- F:乘機次數。越大代表乘機次數越多
- M:飛行總里程。越大代表總里程越多
- C:平均折扣率。越大代表折扣越弱,0表示0折免費機票,10代表無折機票
對應實際業務對聚類結果進行分值離散轉化,對應1-5分,其中屬性值越大,分數越高:
同時針對業務需要,及參考RFM模型對客戶類別的分類,定義五個等級的客戶類別:
(1)重要保持客戶
- 平均折扣率高(C↑),最近有乘機記錄(R↓),乘機次數高(F↑)或里程高(M↑)
- 這類客戶機票票價高,不在意機票折扣,經常乘機,是最理想的客戶類型
- 公司應優先將資源投放到他們身上,維持這類客戶的忠誠度
(2)重要發展客戶
- 平均折扣率高(C↑),最近有乘機記錄(R↓),乘機次數高(F↓)或里程高(M↓)
- 這類客戶機票票價高,不在意機票折扣,最近有乘機記錄,但總里程低,具有很大的發展潛力
- 公司應加強這類客戶的滿意度,使他們逐漸成為忠誠客戶
(3)重要挽留客戶
- 平均折扣率高(C↑),乘機次數高(F↑)或里程高(M↑),最近無乘機記錄(R↑)
- 這類客戶總里程高,但較長時間沒有乘機,可能處于流失狀態
- 公司應加強與這類客戶的互動,召回用戶,延長客戶的生命周期
(4)一般客戶
- 平均折扣率低(C↓),最近無乘機記錄(R↑),乘機次數高(F↓)或里程高(M↓),入會時間短(L↓)
- 這類客戶機票票價低,經常買折扣機票,最近無乘機記錄,可能是趁著折扣而選擇購買,對品牌無忠誠度
- 公司需要在資源支持的情況下強化對這類客戶的聯系
(5)低價值客戶
- 平均折扣率低(C ↓ ),最近無乘機記錄(R ↑ ),乘機次數高(F ↓ )或里程高(M ↓ ),入會時間短(L ↓ )
- 這類客戶與一般客戶類似,機票票價低,經常買折扣機票,最近無乘機記錄,可能是趁著折扣而選擇購買,對品牌無忠誠度
根據聚類結果,對應上述五類客戶類型,進行匹配,得到客戶群體的價值排名:
在數據與處理時,我們已經將62044位用戶與客戶群體一一對應,現在每類客戶群體也對應了客戶價值,至此得到了62044位客戶的價值分類結果,建模完成。
三、分析結果
根據建模結果,發現該公司的五類不同價值的客戶數量分布如圖所示:
分析:
- 重要保持客戶、重要發展客戶占比15.3%,不足兩成,整體較少
- 一般客戶、低價值客戶占比59.3%,接近六成,整體偏多
- 重要挽留客戶占比25.4%,接近四分之一,整體發揮空間大
按照20/80法則:一般而言企業的80%收入由頭部20%的用戶貢獻。從上圖中也能發現:忠誠的重要保留客戶、中發展客戶必然貢獻了企業收入的絕大部分,企業也需要投入資源服務好這部分客戶。
同時,重要保持客戶、重要發展客戶、重要挽留客戶這三類客戶其實也對應著客戶生命周期中的發展期、穩定器、衰退期三個時期。從客戶生命周期的角度講,也應重點投入資源召回衰退期的客戶。
一般而言,數據分析最終的目的是針對分析結果提出并開展一系列的運營/營銷策略,以期幫助企業發展。在本實例中,運營策略有三個方向:
- 提高活躍度:提高一般客戶、低價值客戶的活躍度。將其轉化為優質客戶
- 提高留存率:與重要挽留客戶互動,提高這部分用戶的留存率
- 提高付費率:維系重要保持客戶、重要發展客戶的忠誠度,保持企業良好收入
每個方向對應不同的策略,如會員升級、積分兌換、交叉銷售、發放折扣券等手段,此處不再展開。
作者:@沈濤,產品運營新人,擅長數據分析。公眾號:沈濤先生,歡迎關注
本文由@沈濤 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自 unsplash,基于 CC0 協議
這篇文章主要還只是提供了一個RFM的思路,后面關于如何用KMEANS分類,并沒有完全詳細的說明,沒有基礎的人可能會看不懂
為什么一定要分成5類呢,4類或6類不行嗎
作者大大 有源數據嗎 想自己跑一遍
你好,文章最后面寫的,每個方向對應不同的策略,如會員升級、積分兌換、交叉銷售、發放折扣券等手段,本章不展開在哪里有比較詳細開展講嗎 文章很實用真的很棒
您好先生,我是營銷小白,現在學客戶群體細分,然后看到了這個模型,請問您能跟我說說在不知道細分市場的時候,主要往哪方向進行收集數據嗎?
我現在在學營銷,但是我還沒有一個比較完整的邏輯,不知道學完這個細分之后下一步要做什么,怎么去規劃,需要看那些書,您能給我寫建議嗎?
非常感謝!
為什么每一篇都這么棒,超喜歡!沈哥有沒有公眾號呀
讀了作者寫的文章,感覺是醍醐灌頂,從分析思路到整個結果的輸出都很清晰明了。自己也在深入學習用戶群體細分這一塊,可是自己從來沒有寫過編程,又該如何學好Py呢?
最近一直思考想學習某一款數據分析工具,作者是否能夠指點迷津呢?
可以,你說
想學習一款軟件,只用于像本文這樣的數據分析,您推薦什么軟件,本人有一定數學基礎;假如學習Py,怎么能快速達到運用軟件分析數據的能力,意思是不想學習其他對我來說用不上的編程語言只想學習一塊數據處理的功能,該從哪學比較迷茫,想問下您當時是怎么學的
我猜你是希望用以致學地來學習技能,我可以簡單推薦一條路線。
Week1:看Python講述數據分析的教程,重點學習Numpy、Pandas、Matplotlib。推薦《利用Python進行數據分析》,切記要敲下書中的每一行代碼。專注一本書,不用廣泛地下載Python資料。
Week2:找Python數據分析項目臨摹,掌握Week1中學到的幾個庫。推薦shiyanlou.com,里面有很多數據分析的小項目,切記要完整地跟著提示做,而且要有產出。這時候需要有得到產出后的掌控感,爭取一周做3個數據分析項目。
Week3:繼續做項目,繼續看書。推薦kesci.com & shiyanlou.com,這時候你對Python有基礎了,可以自己去Baidu、Zhihu、CSDN找材料看,找項目做。爭取做2個項目。
Week4:可以做自己的數據分析了。把之前的項目經驗用在這里,邊做邊在網上、書上查找靈感和方法。
Week5:你自己不是零基礎了,可以自己給自己定目標了。
Note:Python是工具,做的時候需要時不時地在網上查找指令代碼,推薦yiibai.com,記得在項目中一遍一遍地熟悉它的功能。
感恩,感謝!
謝謝你的分享,干貨滿滿
厲害