一、前言
做數(shù)據(jù)分析的時(shí)候小槐,我們總是喜歡把客戶分類淮捆,這樣才能更有針對(duì)性的制定運(yùn)營活動(dòng),比如按性別本股、年齡攀痊、等級(jí)、區(qū)域拄显、設(shè)備苟径、渠道等各個(gè)維度進(jìn)行細(xì)分,這些維度都是基于客戶的自身屬性躬审。
RFM模型是客戶關(guān)系管理領(lǐng)域里的一種消費(fèi)行為分析模型棘街,用來衡量用戶的內(nèi)在價(jià)值和忠誠度。它從三個(gè)關(guān)鍵維度描述用戶的購買行為承边,其中R近度(Recency)代表最近購買時(shí)間遭殉,指上次購買距離當(dāng)前的時(shí)間間隔;F頻度(Frequency)代表購買頻率博助,指某一段時(shí)間內(nèi)購買的次數(shù)险污;M額度(Monetary)代表總購買金額,指某一段時(shí)間內(nèi)購買商品的金額富岳。
經(jīng)過研究發(fā)現(xiàn):
- R值越小蛔糯,用戶越有可能產(chǎn)生新的交易。
- F值越大窖式,用戶越有可能產(chǎn)生新的交易蚁飒。
- M值越大,用戶越有可能產(chǎn)生新的交易萝喘。
根據(jù)RFM模型淮逻,可以將付費(fèi)用戶細(xì)分為8種類型:
R近度 | F頻度 | M額度 | 用戶類型 |
---|---|---|---|
高 | 高 | 高 | 重要價(jià)值客戶 |
高 | 低 | 高 | 重要發(fā)展客戶 |
低 | 高 | 高 | 重要保持客戶 |
低 | 低 | 高 | 重要挽留客戶 |
高 | 高 | 低 | 一般價(jià)值客戶 |
高 | 低 | 低 | 一般發(fā)展客戶 |
低 | 高 | 低 | 一般保持客戶 |
低 | 低 | 低 | 一般挽留客戶 |
二琼懊、構(gòu)建RFM模型
樣本數(shù)據(jù)(純屬虛構(gòu))
_uid | pid | money | _tm | pstatus |
---|---|---|---|---|
10255293 | 6000311 | 0.99 | 1519884098 | 2 |
10255293 | 6000939 | 0.99 | 1519884598 | 1 |
10459895 | 6000326 | 5 | 1519884709 | 2 |
10459895 | 6001344 | 30 | 1519917316 | 2 |
112135473 | 6000016 | 100 | 1519873245 | 2 |
112135473 | 6000070 | 1000 | 1519875865 | 2 |
116956409 | 6000233 | 5 | 1519881468 | 2 |
117171509 | 6000598 | 30 | 1519893902 | 2 |
117171509 | 6000585 | 5 | 1519893441 | 2 |
1179365 | 5999641 | 1.99 | 1519841118 | 2 |
其中,_uid表示付費(fèi)用戶ID爬早,pid表示訂單ID肩碟,money表示付費(fèi)額度,_tm表示付費(fèi)時(shí)間凸椿,pstatus表示訂單狀態(tài)(1表示退款削祈,2表示支付成功),hive sql實(shí)現(xiàn)如下:
Hive SQL實(shí)現(xiàn)
WITH q1
AS (
SELECT *
,datediff(from_unixtime(unix_timestamp(), 'yyyy-MM-dd'), from_unixtime(cast(last AS INT), 'yyyy-MM-dd')) AS recency
FROM (
SELECT *
FROM (
SELECT `_uid`
,cast(COALESCE(pamount, 0) AS DOUBLE) * cast(COALESCE(prate, 0) AS DOUBLE) AS pay
,pstatus
,row_number() OVER (
PARTITION BY `_uid`
,`pid` ORDER BY `_tm` DESC
) AS rank
,FIRST_VALUE(`_tm`) OVER (
PARTITION BY `_uid` ORDER BY `_tm` DESC
) AS last
FROM user_order2
WHERE tm BETWEEN 20180101
AND 20180131
AND plat = 607
) subquery
WHERE subquery.rank = 1
AND subquery.pstatus = 2
) a
)
INSERT overwrite LOCAL directory '/home/hadoop/order' ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
SELECT u1.`_uid`
,CASE
WHEN u1.recency >= u2.recency
AND u1.frequency >= u2.frequency
AND u1.monetary >= u2.monetary
THEN '重要價(jià)值客戶'
WHEN u1.recency >= u2.recency
AND u1.frequency < u2.frequency
AND u1.monetary >= u2.monetary
THEN '重要發(fā)展客戶'
WHEN u1.recency < u2.recency
AND u1.frequency >= u2.frequency
AND u1.monetary >= u2.monetary
THEN '重要保持客戶'
WHEN u1.recency < u2.recency
AND u1.frequency < u2.frequency
AND u1.monetary >= u2.monetary
THEN '重要挽留客戶'
WHEN u1.recency >= u2.recency
AND u1.frequency >= u2.frequency
AND u1.monetary < u2.monetary
THEN '一般價(jià)值客戶'
WHEN u1.recency >= u2.recency
AND u1.frequency < u2.frequency
AND u1.monetary < u2.monetary
THEN '一般發(fā)展客戶'
WHEN u1.recency < u2.recency
AND u1.frequency >= u2.frequency
AND u1.monetary < u2.monetary
THEN '一般保持客戶'
WHEN u1.recency < u2.recency
AND u1.frequency < u2.frequency
AND u1.monetary < u2.monetary
THEN '一般挽留客戶'
END
FROM (
SELECT `_uid`
,recency
,sum(pay) AS monetary
,count(1) AS frequency
FROM q1
GROUP BY `_uid`
,recency
) u1
JOIN (
SELECT t2.daysum / t1.ucount AS recency
,t1.paycount / t1.ucount AS frequency
,t1.paysum / t1.ucount AS monetary
FROM (
SELECT sum(pay) AS paysum
,sum(1) AS paycount
,(count(DISTINCT `_uid`) * 1.0) AS ucount
FROM q1
) t1
JOIN (
SELECT sum(recency) AS daysum
FROM (
SELECT `_uid`
,recency
FROM q1
GROUP BY `_uid`
,recency
) t
) t2
) u2
最終輸出結(jié)果
_uid | 標(biāo)簽類型 |
---|---|
12529029 | 重要價(jià)值客戶 |
94834596 | 重要發(fā)展客戶 |
96111789 | 重要保持客戶 |
115595186 | 重要挽留客戶 |
95696135 | 一般價(jià)值客戶 |
94851783 | 一般發(fā)展客戶 |
96083591 | 一般保持客戶 |
94901846 | 一般挽留客戶 |
用戶類型分布
三脑漫、總結(jié)
RFM是一個(gè)簡潔髓抑、有效的模型。但其這三個(gè)維度包含的信息有限优幸。在用戶分類運(yùn)營過程中吨拍,無法具體到個(gè)性化需求。如果某個(gè)類別的用戶對(duì)活動(dòng)沒有響應(yīng)网杆,他仍然會(huì)出現(xiàn)在下一次的營銷目標(biāo)人群中羹饰,造成資源的浪費(fèi)√既矗可以結(jié)合畫像系統(tǒng)中的其他標(biāo)簽屬性队秩,比如購買周期、響應(yīng)程度昼浦、活躍程度等維度馍资。
上面的例子采用均值來劃分用戶類型,它容易受到數(shù)據(jù)極端值的影響关噪,對(duì)于偏態(tài)分布的數(shù)據(jù)鸟蟹,其劃分結(jié)果的代表性較差,可以使用中位數(shù)(percentile)或者其他劃分標(biāo)準(zhǔn)使兔,如找出所有用戶的整體分布形態(tài)建钥,按照業(yè)務(wù)需求進(jìn)行切分。
另外就是不同用戶每次付費(fèi)額度差異較大虐沥,有的用戶一次付費(fèi)額度只有1元熊经,有的用戶一次付費(fèi)100元。但在計(jì)算頻度時(shí)都算一次置蜀。因此需要在RFM指標(biāo)基礎(chǔ)上加上權(quán)重值奈搜,使其能夠較好的反應(yīng)出用戶的最終價(jià)值。
聚類算法也經(jīng)常被用于客戶分類盯荤,我們將在下章特征工程中給出詳細(xì)說明。