判断用户是否存在再进行新增_MySQL用户行为分析
一、背景介紹
在互聯(lián)網(wǎng)整體人口紅利消失的背景下,電商平臺(tái)流量成本不斷提升,逐漸由流量思維開始向用戶思維轉(zhuǎn)變。本文希望通過對(duì)用戶在平臺(tái)上留下的的日常操作數(shù)據(jù),進(jìn)一步來分析用戶的消費(fèi)行為特點(diǎn)。
二、理解數(shù)據(jù)
1.數(shù)據(jù)來源
阿里巴巴天池
User Behavior Data from Taobao for Recommendation-數(shù)據(jù)集-阿里云天池?tianchi.aliyun.com本數(shù)據(jù)集(UserBehavior.csv)包含了2017年11月25日至2017年12月3日之間,有行為的約一百萬隨機(jī)用戶的所有行為(行為包括點(diǎn)擊、購買、加購、收藏),數(shù)據(jù)集的每一行表示一條用戶行為,由用戶ID、商品ID、商品類目ID、行為類型和時(shí)間戳組成,并以逗號(hào)分隔。
2.字段含義
userid:用戶ID,字符串類型,用戶ID
itemid:商品ID,字符串類型,商品ID
categoryid:商品類目ID,字符串類型,商品所屬類目ID
behavior:行為類型,字符串,枚舉類型,包括('pv', 'buy', 'cart', 'fav')
timestamps:時(shí)間戳,行為發(fā)生的時(shí)間戳
注意到,用戶行為類型共有四種,它們分別是
pv:商品詳情頁pv,等價(jià)于點(diǎn)擊
buy :商品購買
cart :將商品加入購物車
fav:收藏商品
由于數(shù)據(jù)集的數(shù)據(jù)量較大,本文側(cè)重于分析過程的學(xué)習(xí),因此選取原數(shù)據(jù)集中的10萬條數(shù)據(jù)導(dǎo)入本地MySQL數(shù)據(jù)庫表userbehavior中,用于后續(xù)的用戶行為分析。
三、提出問題及分析思路
1、用戶整體購物情況怎樣?
統(tǒng)計(jì)數(shù)據(jù)集中總的用戶數(shù),商品數(shù),商品類別數(shù),用戶行為數(shù)。
2、用戶粘性如何?
分析用戶整體的跳出率、復(fù)購率,運(yùn)用群組分析方法分析新增用戶留存率。
3、用戶的消費(fèi)行為習(xí)慣怎樣?
運(yùn)用對(duì)比分析方法,分析用戶隨時(shí)間的活動(dòng)規(guī)律。
4、用戶在哪個(gè)環(huán)節(jié)流失的?
運(yùn)用AARRR漏斗分析方法,分析用戶行為路徑及各個(gè)環(huán)節(jié)的轉(zhuǎn)化率,運(yùn)用假設(shè)檢驗(yàn)分析方法找出導(dǎo)致用戶流失的原因。
5、哪些是最有價(jià)值的用戶?
運(yùn)用RFM分析方法,對(duì)用戶按價(jià)值進(jìn)行分類,對(duì)于不同價(jià)值的用戶進(jìn)行精細(xì)化運(yùn)營。
四、數(shù)據(jù)清洗
1、選擇子集,這里導(dǎo)入10萬條數(shù)據(jù),均為有用子集
2、列重命名
因原表的列名為第一行數(shù)據(jù),這里修改為對(duì)應(yīng)列名
3、刪除重復(fù)值
這里的每一條數(shù)據(jù)都是記錄用戶的行為數(shù)據(jù),均有意義無需去重
4、缺失值處理
查詢每列是否有空值
SELECTcount( userid ),count( itemid ),count( categoryid ),count( behavior ),count( timestamps ) FROMuserbehavior WHEREuserid IS NULL OR itemid IS NULL OR categoryid IS NULL OR behavior IS NULL OR timestamps IS NULL;從查詢結(jié)果可以看出,不存在缺失值
5、一致化處理
由于timestamps列導(dǎo)入數(shù)據(jù)時(shí)數(shù)據(jù)類型為字符型,這里需要轉(zhuǎn)換為日期格式,并創(chuàng)建date列和hour列分別存放對(duì)應(yīng)的日期和小時(shí)
# 將timestamps列轉(zhuǎn)換為日期格式 UPDATE userbehavior SET timestamps=FROM_UNIXTIME(timestamps,'%Y-%m-%d %H:%i:%s');# 新建date列,從timestamp列截取日期 ALTER TABLE userbehavior add date varchar(10); UPDATE userbehavior SET date=SUBSTRING(timestamps,1,10);# 新建hour列,從timestamp列截取小時(shí) ALTER TABLE userbehavior add hours varchar(10); UPDATE userbehavior SET hours=SUBSTRING(timestamps,12,2);轉(zhuǎn)換日期結(jié)果如下:
6、異常值處理
導(dǎo)入的數(shù)據(jù)選取的時(shí)間是2017年11月25日至2017年12月3日之間
1)通過查詢date列,看是否存在異常值
# 查詢?nèi)掌诹凶钚≈岛妥畲笾?SELECT min(date),max(date) FROM userbehavior;2)刪除指定日期之外的異常值
# 刪除指定日期之外的異常值 DELETE FROM userbehavior WHERE date > '2017-12-03' or date < '2017-11-25';# 查詢?nèi)掌诹凶钚≈岛妥畲笾禉z查是否處理異常值 SELECT min(date),max(date) FROM userbehavior;處理異常值后的結(jié)果
五、業(yè)務(wù)分析
1、用戶整體購物情況怎樣?
統(tǒng)計(jì)數(shù)據(jù)集中所有行為數(shù)據(jù),總用戶數(shù),商品數(shù),商品類別數(shù),用戶行為數(shù)。
# 統(tǒng)計(jì)數(shù)據(jù)集中所有行為數(shù)據(jù),總用戶數(shù),商品數(shù),商品類別數(shù),用戶行為數(shù) SELECTcount( * ) AS 行為數(shù),count( DISTINCT userid ) AS 用戶數(shù),count( DISTINCT itemid ) AS 商品數(shù),count( DISTINCT categoryid ) AS 商品類別數(shù),count( DISTINCT behavior ) AS 用戶行為數(shù) FROMuserbehavior;從結(jié)果課程看出,數(shù)據(jù)集中總共有99956條行為數(shù)據(jù),其中包含983位用戶,64440個(gè)商品,3128個(gè)類別,4種用戶行為。
2、用戶粘性如何?
(1)跳出率
跳出率:用戶只產(chǎn)生pv行為后沒有后續(xù)其他行為的次數(shù)占所有訪問次數(shù)的比例
# 跳出率 select concat(round(sum(pv)/(select count(*)from userbehavior)*100,2),'%') as 跳出率 from (select userid, sum(case behavior when 'pv' then 1 else 0 end) as pv, sum(case behavior when 'fav' then 1 else 0 end) as fav, sum(case behavior when 'cart' then 1 else 0 end) as cart, sum(case behavior when 'buy' then 1 else 0 end) as buy from userbehavior group by userid) as a where pv>0 and fav=0 and cart=0 and buy=0;結(jié)果如下:
跳出率為2.51%,用戶跳出率低,說明平臺(tái)對(duì)用戶的吸引力較大。
(2)用戶復(fù)購率
復(fù)購用戶:產(chǎn)生兩次或兩次以上購買的用戶并且購買日期不在同一天
用戶復(fù)購率=復(fù)購用戶數(shù)/總購買用戶數(shù)
# 復(fù)購用戶數(shù) SELECT count(*) as 復(fù)購用戶數(shù) FROM # 查找復(fù)購用戶 (SELECT userid,count(*) as 購買次數(shù) FROM userbehavior WHERE behavior='buy' GROUP BY userid HAVING count(DISTINCT date)>=2) as a;# 總購買用戶數(shù) SELECT count(DISTINCT userid) as 總購買用戶數(shù) FROM userbehavior WHERE behavior='buy';結(jié)果如下:
用戶復(fù)購率=復(fù)購用戶數(shù)/總購買用戶數(shù)=365/671=54.40%
(3)復(fù)購用戶購買次數(shù)占比
# 復(fù)購用戶購買次數(shù) SELECT sum(購買次數(shù)) as 復(fù)購用戶購買次數(shù) FROM # 查找復(fù)購用戶 (SELECT userid,count(*) as 購買次數(shù) FROM `userbehavior` WHERE behavior='buy' GROUP BY userid HAVING count(DISTINCT date)>=2) as a;# 總購買次數(shù) SELECT count(*) as 總購買次數(shù) FROM userbehavior WHERE behavior='buy';結(jié)果如下:
復(fù)購用戶購買次數(shù)占比=復(fù)購用戶購買次數(shù)/總購買次數(shù)=1668/2101=79.40%
由以上結(jié)果可以看出,用戶的復(fù)購率超過了50%,同時(shí)復(fù)購用戶購買次數(shù)占比達(dá)到了79.40%,說明平臺(tái)用戶粘性很高,且購買積極性也高。
(4)留存率
使用群組分析方法,按每天新增的用戶進(jìn)行分組,通過每天新增用戶的留存率來判斷平臺(tái)對(duì)用戶的吸引力,由于數(shù)據(jù)集僅有九天的數(shù)據(jù),這里使用2017年11月25日的所有用戶作為第一天新增用戶,僅計(jì)算這九天的新增用戶留存率。
創(chuàng)建視圖lading統(tǒng)計(jì)每天的用戶名單(按userid和日期去重后的數(shù)據(jù))
#創(chuàng)建視圖lading統(tǒng)計(jì)每天的用戶名單 create view lading as select userid,date from userbehavior GROUP BY userid,date;計(jì)算每日新增用戶留存率:
# 計(jì)算每日留存率 select a.date, count(distinct a.userid) as 日新增用戶數(shù), concat(round(100*count(distinct if(datediff(b.date,a.date)=1, b.userid, null))/count(distinct a.userid),2),'%') as 次日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=2, b.userid, null))/count(distinct a.userid),2),'%') as 二日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=3, b.userid, null))/count(distinct a.userid),2),'%') as 三日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=4, b.userid, null))/count(distinct a.userid),2),'%') as 四日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=5, b.userid, null))/count(distinct a.userid),2),'%') as 五日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=6, b.userid, null))/count(distinct a.userid),2),'%') as 六日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=7, b.userid, null))/count(distinct a.userid),2),'%') as 七日留存率, concat(round(100*count(distinct if(datediff(b.date,a.date)=8, b.userid, null))/count(distinct a.userid),2),'%') as 八日留存率 from #統(tǒng)計(jì)每日新增的用戶名單(select d1.*from lading as d1 left join lading as d2 on d1.userid=d2.userid and d1.date>d2.datewhere d2.date is null) as a left join lading as b on a.userid=b.userid group by a.date;結(jié)果如下:
可視化結(jié)果如下:
由以上結(jié)果可以看出,每日的留存率都處在較高的水平,這說明用戶的忠誠度較高。
綜上所述:從用戶的跳出率、復(fù)購率和留存率可以看出,平臺(tái)用戶粘性很高,忠誠度高且購買積極性也高。
3、用戶的消費(fèi)行為習(xí)慣怎樣?
分析用戶消費(fèi)行為隨時(shí)間的變化趨勢
(1)每天用戶訪問變化情況
UV(unique visitor),代表獨(dú)立訪客人數(shù)。
PV/UV:就是平均一個(gè)獨(dú)立訪問者所瀏覽的頁面訪問量,引申含義就是頁面重復(fù)訪問量,反映用戶購買意向,比值越大反映用戶購買意向強(qiáng)烈
SELECT date as 日期, sum(case when behavior='pv' then 1 else 0 end) as 點(diǎn)擊量, count(DISTINCT userid) as 用戶數(shù), (sum(case when behavior='pv' then 1 else 0 end)/count(DISTINCT userid)) as 重復(fù)訪問量 FROM userbehavior GROUP BY date;結(jié)果如下:
數(shù)據(jù)可視化如下:
由以上結(jié)果可以看出,在11-30日至12-3日期間,點(diǎn)擊量和用戶數(shù)呈明顯上升趨勢,都在12-2日到達(dá)峰值,而重復(fù)訪問量先快速攀升而后又迅速下降,在12-1日達(dá)到峰值(12-1日為周五)。
(2)每天用戶購買行為的特點(diǎn)
SELECT date as '日期',count(behavior) as 用戶行為總量, sum(case when behavior='pv' then 1 else 0 end) as 點(diǎn)擊量, sum(case when behavior='fav' then 1 else 0 end) as 收藏?cái)?shù), sum(case when behavior='cart' then 1 else 0 end) as 加購數(shù), sum(case when behavior='buy' then 1 else 0 end) as 購買數(shù) FROM userbehavior GROUP BY date;結(jié)果如下:
數(shù)據(jù)可視化如下:
由以上結(jié)果可以看出,在11-30日至12-3日期間用戶購買行為整體呈上升趨勢,綜合(1)、(2)的結(jié)果,通過查詢可知是由于雙十二大促的預(yù)售活動(dòng)導(dǎo)致訪問量的激增,用戶表現(xiàn)強(qiáng)烈的購買意愿,將商品收藏、加入購物車為雙十二當(dāng)天購買做準(zhǔn)備。
(3)一天中用戶的活躍時(shí)段分布
SELECT hours as '時(shí)段',count(behavior) as 用戶行為總量, sum(case when behavior='pv' then 1 else 0 end) as 點(diǎn)擊量, sum(case when behavior='fav' then 1 else 0 end) as 收藏?cái)?shù), sum(case when behavior='cart' then 1 else 0 end) as 加購數(shù), sum(case when behavior='buy' then 1 else 0 end) as 購買數(shù) FROM userbehavior GROUP BY hours ORDER BY hours;結(jié)果如下:
數(shù)據(jù)可視化如下:
從結(jié)果可以看出,每日0點(diǎn)到4點(diǎn)用戶活躍度快速降低,降到一天中的活躍量最低值,符合人們正常作息時(shí)間規(guī)律,5點(diǎn)到10點(diǎn)用戶活躍度快速上升,12點(diǎn)到15點(diǎn)用戶活躍度緩慢回升,18點(diǎn)到21點(diǎn)用戶活躍度快速上升,達(dá)到一天中的最高值,在此時(shí)段用戶最活躍可推送促銷活動(dòng)或產(chǎn)品直播,刺激消費(fèi)者購買。
(4)一周中用戶活躍時(shí)段分布
SELECT DATE_FORMAT(date,'%W') as '星期', count(behavior) as 用戶行為總量, sum(case when behavior='pv' then 1 else 0 end) as 點(diǎn)擊量, sum(case when behavior='fav' then 1 else 0 end) as 收藏?cái)?shù), sum(case when behavior='cart' then 1 else 0 end) as 加購數(shù), sum(case when behavior='buy' then 1 else 0 end) as 購買數(shù) FROM userbehavior GROUP BY DATE_FORMAT(date,'%W') ORDER BY WEEKDAY(date);結(jié)果如下:
數(shù)據(jù)可視化如下:
從結(jié)果可以看出,每周一至周四用戶活躍度較穩(wěn)定,周五活躍度會(huì)有小幅上升,周末活躍度大幅度攀升達(dá)到最大值,這是周末雙十二大促銷活動(dòng)引起,可見在周末推送促銷活動(dòng)更能刺激消費(fèi)者購買。
4、用戶在哪個(gè)環(huán)節(jié)流失的?
本次數(shù)據(jù)集里面用戶行為字段中包括四種行為:詳情頁點(diǎn)擊,收藏,加入購物車和購買,為分析每一位用戶的行為路徑,將數(shù)據(jù)集中全部數(shù)據(jù)按不同用戶進(jìn)行分組,統(tǒng)計(jì)每位用戶行為分布。如果在數(shù)據(jù)中,點(diǎn)擊行為數(shù)據(jù)大于0,購買行為大于0,并且其他兩項(xiàng)行為為0,則可判定該用戶的行為路徑為 點(diǎn)擊—購買,其他用戶行為路徑判定方法與此同理。
創(chuàng)建一個(gè)視圖user_behavior,統(tǒng)計(jì)用戶行為分布:
# 創(chuàng)建一個(gè)視圖user_behavior,統(tǒng)計(jì)用戶行為分布 create view user_behavior as select userid,count(behavior) as total, sum(case when behavior='pv' then 1 else 0 end) as pv, sum(case when behavior='fav' then 1 else 0 end) as fav, sum(case when behavior='cart' then 1 else 0 end) as cart, sum(case when behavior='buy' then 1 else 0 end) as buy from userbehavior group by userid;# 查看每一位用戶的購物情況 select * from user_behavior ORDER BY 總行為數(shù) desc;結(jié)果如下:
(1)用戶整體購買行為
因?yàn)榧淤徍褪詹匦袨闆]有先后順序,因此把它們合并在一起,分析用戶整體購買行為。
從視圖user_behavior中匯總各購買行為
# 從視圖user_behavior中匯總各購買行為 select sum(total) as total,sum(pv) as pv,sum(fav) as fav,sum(cart) as cart,sum(buy) as buy from user_behavior;結(jié)果如下:
計(jì)算各行為轉(zhuǎn)化率
# 計(jì)算各行為轉(zhuǎn)化率 SELECT concat(round(sum(pv)/sum(total)*100,2),'%') as total_pv, concat(round((sum(fav)+sum(cart))/sum(total)*100,2),'%') as 'total_fav/cart', concat(round(sum(buy)/sum(total)*100,2),'%') as total_buy FROM user_behavior;結(jié)果如下:
將以上數(shù)據(jù)進(jìn)行可視化:
從結(jié)果上可以看出,點(diǎn)擊占比為89.7%,而加購與收藏的占比有8.19%,并且購買的占比僅有2.1%,這說明用戶對(duì)網(wǎng)站的內(nèi)容感興趣,但轉(zhuǎn)化購買的人相對(duì)少,這需要找出背后流失的原因。
(2)用戶行為路徑分析
分析用戶購買行為路徑中主要考慮以下幾種:
計(jì)算過程如下:
# 從創(chuàng)建的視圖user_behavior統(tǒng)計(jì)各路徑流失情況 select sum(case when pv>0 then 1 else 0 end) as 'pv',sum(case when pv>0 and buy>0 and cart=0 and fav=0 then 1 else 0 end) as 'pv-buy',sum(case when pv>0 and (cart>0 or fav>0) then 1 else 0 end) as 'pv-cart/fav',sum(case when pv>0 and (cart>0 or fav>0) and buy>0 then 1 else 0 end) as 'pv-cart/fav-buy',sum(case when pv>0 and (cart>0 or fav>0) and buy=0 then 1 else 0 end) as 'pv-cart/fav-lost',sum(case when pv>0 and cart=0 and fav=0 and buy=0 then 1 else 0 end) as 'pv-lost' from user_behavior;結(jié)果如下:
從以上結(jié)果可以看出:
1) 用戶點(diǎn)擊后流失率為7%,這說明平臺(tái)對(duì)用戶具有很大吸引力。
2) 用戶點(diǎn)擊-收藏/加購-購買的轉(zhuǎn)化率比點(diǎn)擊-購買的轉(zhuǎn)化率高,用戶更喜歡把商品收藏或加入購物車后購買,應(yīng)從產(chǎn)品交互界面、營銷機(jī)制等方面積極引導(dǎo)用戶把商品加入購物車或收藏。
3) 從流失率分析,用戶點(diǎn)擊-收藏/加購后的流失率比用戶直接點(diǎn)擊后流失率大,用戶把商品收藏或加入購物車后有28.9%放棄購買,這就需要我們找出這部分用戶流失的原因。
(3)用戶流失原因分析
這里運(yùn)用假設(shè)檢驗(yàn)分析方法,從用戶和產(chǎn)品兩個(gè)維度提出假設(shè),并通過收集證據(jù)來驗(yàn)證假設(shè)。
假設(shè)一:平臺(tái)推薦商品不是用戶想買商品?
要想驗(yàn)證平臺(tái)推薦商品是不是用戶想買商品,可以通過分析用戶的高瀏覽量是否為高購買量
I.創(chuàng)建視圖統(tǒng)計(jì)瀏覽量TOP10商品種類和購買量TOP10商品種類
# 創(chuàng)建瀏覽量TOP10商品種類視圖 create view pv_top10_category as select categoryid,count(*) as 瀏覽量top10 from userbehavior WHERE behavior='pv' GROUP BY categoryid ORDER BY count(*) desc limit 10;# 創(chuàng)建購買量TOP10商品種類視圖 create view buy_top10_category as select categoryid,count(*) as 購買量top10 from userbehavior WHERE behavior='buy' GROUP BY categoryid ORDER BY count(*) desc limit 10;根據(jù)categoryid對(duì)比分析瀏覽量TOP10和購買量TOP10重合部分商品種類
# 瀏覽量TOP10商品種類 SELECT * FROM pv_top10_category as a left join buy_top10_category as b USING(categoryid);# 購買量TOP10商品種類 SELECT * FROM buy_top10_category as a left join pv_top10_category as b USING(categoryid);結(jié)果整理如下:
由結(jié)果可以看出,瀏覽量TOP10商品種類和購買量TOP10商品種類中僅有50%的商品種類重合,重合度并不高。
II.創(chuàng)建視圖統(tǒng)計(jì)瀏覽量TOP10商品和購買量TOP10商品
# 創(chuàng)建瀏覽量TOP10商品視圖 create view pv_top10_item as select itemid,count(*) as 瀏覽量top10 from userbehavior WHERE behavior='pv' GROUP BY itemid ORDER BY count(*) desc limit 10;# 創(chuàng)建購買量TOP10商品視圖 create view buy_top10_item as select itemid,count(*) as 購買量top10 from userbehavior WHERE behavior='buy' GROUP BY itemid ORDER BY count(*) desc limit 10;根據(jù)itemid對(duì)比分析瀏覽量TOP10和購買量TOP10重合部分商品
# 瀏覽量TOP10商品 SELECT * FROM pv_top10_item as a left join buy_top10_item as b USING(itemid);# 購買量TOP10商品 SELECT * FROM buy_top10_item as a left join pv_top10_item as b USING(itemid);結(jié)果整理如下:
由結(jié)果可以看出,瀏覽量TOP10商品和購買量TOP10商品中沒有一個(gè)重復(fù)的商品ID,重合度為0。
綜上所述,用戶高瀏覽量并不能帶來高購買量,即平臺(tái)推薦商品不是用戶想買商品,假設(shè)一成立。
假設(shè)二:商品種類太少?
可以通過統(tǒng)計(jì)商品類目數(shù)量和涵蓋的商品數(shù)量來驗(yàn)證商品種類是否太少
# 整體商品類目與對(duì)應(yīng)的商品數(shù)量 SELECTcount( DISTINCT categoryid ) AS 商品類目數(shù)量,count( DISTINCT itemid ) AS 商品數(shù)量 FROMuserbehavior;結(jié)果如下:
由以上結(jié)果可以看出,數(shù)據(jù)集共有3128中商品類目涵蓋64440中商品,供用戶選擇的商品種類多,所以假設(shè)二不成立。
假設(shè)三:商品沒有吸引力?
通過分析商品購買次數(shù)的占比,驗(yàn)證商品是否沒有吸引力
統(tǒng)計(jì)每個(gè)商品的購買次數(shù)
# 每個(gè)商品的購買次數(shù) SELECT itemid,count(*) AS 購買次數(shù) FROM userbehavior WHERE behavior = 'buy' GROUP BY itemid ORDER BY count(*) DESC;結(jié)果如下:
購買次數(shù)占比
# 購買次數(shù)占比 SELECTa.購買次數(shù),count( a.itemid ) AS 商品數(shù),concat(round( count( a.itemid ) / ( SELECT count( DISTINCT itemid ) FROM userbehavior WHERE behavior = 'buy' ) * 100, 2 ),'%' ) AS 占比 FROM( SELECT itemid, count( * ) AS 購買次數(shù) FROM userbehavior WHERE behavior = 'buy' GROUP BY itemid ) AS a GROUP BY a. 購買次數(shù);結(jié)果如下:
可視化結(jié)果:
由以上結(jié)果可以看出,商品購買次數(shù)最多不超過4次,且購買1次的商品占比94.81%,說明產(chǎn)品復(fù)購率低,商品對(duì)用戶沒有足夠多的吸引力,假設(shè)三成立。
總結(jié):
1) 平臺(tái)對(duì)用戶吸引力巨大,用戶在平臺(tái)的行為路徑中通過點(diǎn)擊-收藏/加購-購買的轉(zhuǎn)化率最高,應(yīng)積極引導(dǎo)用戶把商品加入購物車或收藏
2) 用戶流失的環(huán)節(jié)主要在收藏/加購,流失的原因主要是平臺(tái)推薦的商品并非用戶喜歡的商品,同時(shí)平臺(tái)也缺乏足夠吸引的爆款產(chǎn)品
3) 優(yōu)化平臺(tái)推薦機(jī)制,把更多流量給到顧客愿意購買的商品,通過打造爆款產(chǎn)品,吸引更多用戶復(fù)購
5、哪些是最有價(jià)值的用戶?
運(yùn)用RFM分析方法,對(duì)用戶按價(jià)值分層,找出最有價(jià)值用戶。
RFM是3個(gè)指標(biāo)的縮寫,最近一次消費(fèi)時(shí)間間隔(Recency),消費(fèi)頻率(Frequency),消費(fèi)金額(Monetary)。
R(Recency):用戶最近一次交易時(shí)間的間隔。R值越小,表示用戶上一次消費(fèi)離得越近,戶價(jià)值越高。
F(Frequency):用戶在最近一段時(shí)間內(nèi)交易的次數(shù)。F值越大,表示用戶交易越頻繁,用戶價(jià)值越高。
M(Monetary):用戶在最近一段時(shí)間內(nèi)交易的金額。M值越大,表示客戶消費(fèi)金額越高越高,用戶價(jià)值越大。
通過對(duì)RFM這3個(gè)值對(duì)應(yīng)的價(jià)值的高低排序組合,得到了下面用戶分類的規(guī)則:
由于數(shù)據(jù)源沒有相關(guān)的金額數(shù)據(jù),暫且通過 R 和 F 的數(shù)據(jù)對(duì)客戶價(jià)值進(jìn)行分類。
1)計(jì)算R、F 值
由于數(shù)據(jù)集包含的時(shí)間是從2017年11月25日至2017年12月3日,這里選取2017年12月3日作為計(jì)算日期,統(tǒng)計(jì)客戶最近產(chǎn)生交易的日期距離2017年12月3日間隔天數(shù)和交易的次數(shù)。
# 最近一次消費(fèi)時(shí)間間隔R和消費(fèi)頻率F SELECT userid,DATEDIFF('2017-12-04',max(date)) AS R,count(*) as F FROM userbehavior WHERE behavior = 'buy' GROUP BY userid;結(jié)果如下:
2)給R、F 值按價(jià)值打分
根據(jù)上面計(jì)算得到的用戶R、F值,定義一個(gè)打分規(guī)則,如下圖:
打分計(jì)算過程如下:
# 對(duì)最近一次消費(fèi)時(shí)間間隔(R)和消費(fèi)頻率(F)進(jìn)行評(píng)分,并創(chuàng)建視圖rfm create view rfm as SELECT a.*,(case when R>20 then 1 when R between 10 and 20 then 2 when R between 5 and 10 then 3 when R between 3 and 5 then 4 when R<=3 then 5 else 0 end) as Rscore, (case when F<=2 then 1 when F between 2 and 6 then 2 when F between 6 and 8 then 3 when F between 10 and 20 then 4 when F>20 then 5 else 0 end) as Fscore FROM (SELECT userid,DATEDIFF('2017-12-04',max(date)) AS R,count(*) as F FROM userbehavior WHERE behavior = 'buy' GROUP BY userid) as a;結(jié)果如下:
3)計(jì)算打分平均值
# 計(jì)算打分平均值 SELECT avg(Rscore) as avg_R, avg(Fscore) as avg_F FROM rfm;結(jié)果如下:
4) 用戶分類
按照R值和F值的平均分對(duì)用戶進(jìn)行分類
# 用戶分類 select userid,Rscore,Fscore,(case when Rscore>4.158 then '高' else '低' end) as 'R值高低',(case when Fscore>1.5484 then '高' else '低' end) as 'F值高低' from rfm;結(jié)果如下:
因?yàn)槲覀冞@里僅考慮R、F因素,把R、F值都低的用戶定義為一般價(jià)值用戶,因此按下面用戶分類規(guī)則進(jìn)行分類:
對(duì)用戶進(jìn)行標(biāo)記:
#對(duì)用戶進(jìn)行標(biāo)記 select userid,R值高低,F值高低, (case when R值高低='高' and F值高低='高' then '重要價(jià)值用戶'when R值高低='低' and F值高低='高' then '重要保持用戶'when R值高低='高' and F值高低='低' then '重要發(fā)展用戶'when R值高低='低' and F值高低='低' then '一般價(jià)值用戶'else 0end) as '用戶分類' from (select userid,Rscore,Fscore,(case when Rscore>4.158 then '高' else '低' end) as 'R值高低',(case when Fscore>1.5484 then '高' else '低' end) as 'F值高低' from rfm) as a;結(jié)果如下:
5) 對(duì)用戶分類進(jìn)行統(tǒng)計(jì)
# 對(duì)用戶分類統(tǒng)計(jì) select 用戶分類,count(*) as 用戶數(shù) FROM (select userid,R值高低,F值高低, (case when R值高低='高' and F值高低='高' then '重要價(jià)值用戶'when R值高低='低' and F值高低='高' then '重要保持用戶'when R值高低='高' and F值高低='低' then '重要發(fā)展用戶'when R值高低='低' and F值高低='低' then '一般價(jià)值用戶'else 0end) as '用戶分類' from (select userid,Rscore,Fscore,(case when Rscore>4.158 then '高' else '低' end) as 'R值高低',(case when Fscore>1.5484 then '高' else '低' end) as 'F值高低' from rfm) as a) as b GROUP BY 用戶分類;結(jié)果如下:
對(duì)結(jié)果進(jìn)行可視化,如下:
由以上結(jié)果可知:
1)重要價(jià)值客戶占比23.70%,極有可能發(fā)展為忠實(shí)用戶,對(duì)這部分用戶,應(yīng)加強(qiáng)交流與互動(dòng),提供vip服務(wù);
2)重要發(fā)展用戶占比21.46%,對(duì)于這部分用戶,應(yīng)刺激消費(fèi),增加粘性;
3)重要保持用戶占比19.08%,對(duì)于這部分用戶,可根據(jù)以往的消費(fèi)記錄,主動(dòng)與其保持聯(lián)系,為其個(gè)性化推薦,以提高復(fù)購率;
4)一般價(jià)值用戶占比35.77%,這部分用戶占比最大極有可能已流失,要想辦法主動(dòng)聯(lián)系客戶,調(diào)查清楚哪里出了問題,通過郵件推送、活動(dòng)短信提醒等方法挽回用戶。
六、總結(jié)與建議
1.用戶在平臺(tái)的跳出率為2.51%、商品復(fù)購率超過了50%,每日新增用戶的留存率都比較高,說明用戶粘性很高,忠誠度高且購買積極性也高。
2.從用戶的消費(fèi)行為習(xí)慣看,用戶在周末的時(shí)候PV、UV較高,活躍度大幅上升,且購買意愿強(qiáng)烈,在一天中的18點(diǎn)到21點(diǎn)是活躍高峰期,可以根據(jù)用戶的活躍時(shí)間段進(jìn)行廣告投放、精準(zhǔn)推送商家的折扣優(yōu)惠或促銷活動(dòng),同時(shí)可以利用新媒體平臺(tái)進(jìn)行微信、抖音等來獲取更多新用戶。
3. 通過對(duì)分用戶行為路徑分析及各個(gè)環(huán)節(jié)轉(zhuǎn)化率的分析,用戶在點(diǎn)擊-收藏/加購-購買的轉(zhuǎn)化率最高,應(yīng)從產(chǎn)品交互界面、營銷機(jī)制等方面積極引導(dǎo)用戶把商品加入購物車或收藏。
4.從流失率分析,用戶把商品收藏或加入購物車后流失率達(dá)28.9%,這部分用戶流失的主要原因是平臺(tái)推薦商品不是用戶想買商品以及商品沒有吸引力,通過優(yōu)化平臺(tái)推薦機(jī)制,把更多流量給到顧客愿意購買的商品,通過打造爆款產(chǎn)品,吸引更多用戶復(fù)購。
5. 通過RFM模型對(duì)用戶進(jìn)行價(jià)值分類,發(fā)現(xiàn)用戶主要集中在一般價(jià)值用戶,占比高達(dá)35.77%,這一部分的用戶極有可能已流失,建議通過APP定向推送、短信和郵件等形式進(jìn)行精準(zhǔn)發(fā)放有償問卷主動(dòng)聯(lián)系用戶,調(diào)查清楚哪里出了問題,制定相應(yīng)的挽回策略。
總結(jié)
以上是生活随笔為你收集整理的判断用户是否存在再进行新增_MySQL用户行为分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python写一个简单的爬虫_用Pyt
- 下一篇: oraclf 复杂查询练习_SQL复杂查