不會機(jī)器學(xué)習(xí),你照樣可以預(yù)測用戶流失
即使不會高深莫測的機(jī)器學(xué)習(xí),你照樣可以利用統(tǒng)計學(xué)來預(yù)測用戶流失。
什么是用戶流失率?我們?yōu)槭裁葱枰P(guān)注用戶流失率?
簡單來說,用戶流失率是指用戶的流失數(shù)量與全部使用/消費產(chǎn)品(或服務(wù))用戶的數(shù)量的比例,是用戶流失的定量表述,以及判斷用戶流失的主要指標(biāo),直接反映了產(chǎn)品的市場接受程度如何,以及運(yùn)營工作的好壞。
一般來說,這個指標(biāo)用在“訂閱型產(chǎn)品”的情形居多,如信息訂閱類App“錘子閱讀”、絕大多數(shù)的在線SaaS產(chǎn)品,甚至傳統(tǒng)的牛奶訂購。由于留住當(dāng)前的用戶要比獲取新用戶來的劃算,所以預(yù)測流失率的目標(biāo)在于:
預(yù)測用戶將會在哪個時間點離開(在訂閱期結(jié)束前),在合適的時間點對這些用戶施加影響,挽留他們,如通過短信、郵件或APP,利用超低價商品吸引回訪或者專屬優(yōu)惠券等,這些策略對于一些流失用戶是很有效的!
接下來,筆者將利用簡單的統(tǒng)計學(xué)知識,介紹一種基于用戶不活躍記錄的用戶流失預(yù)測模型。該模型在不使用機(jī)器學(xué)習(xí)算法的情況下,可以給出一個容易理解的用戶流失預(yù)測,以便我們對將要離開的用戶有一個相當(dāng)準(zhǔn)確的洞察。
廢話不多說,進(jìn)入正題吧~
1 用戶活躍的操作性定義
在我們正式開始預(yù)測用戶流失率之前,我們需要記錄用戶的歷史活躍情況。做這個的目的在于,了解用戶是否在使用我們的產(chǎn)品或服務(wù)。那么,問題就來了,用戶的“活躍”該做怎樣的操作性定義(即根據(jù)可觀察、可測量、可操作的特征來界定變量含義的方法)?實際上,“用戶活躍”的定義取決于你的業(yè)務(wù)背景,跟產(chǎn)品或者服務(wù)具體場景密切相關(guān),不同類型的產(chǎn)品對“用戶活躍”有不同的定義。
以xxx的“信息監(jiān)測”為例,它是一款訂閱型的社會化大數(shù)據(jù)產(chǎn)品,用戶通過設(shè)置各種關(guān)鍵詞組合來檢索相關(guān)信息,然后選擇郵件或者客戶端訂閱,通過自定義的接收頻次來準(zhǔn)時收取訂閱信息。
對于這款大數(shù)據(jù)產(chǎn)品來說,“用戶活躍”可以這樣定義—如果一個用戶是活躍的,那么,ta在指定時間段內(nèi)(分析的時間單位取決于分析者對業(yè)務(wù)的理解,可以是天、周、月、季度或年),應(yīng)該包含如下付費、使用或者互動行為:
- 該用戶對“信息監(jiān)測”的訂閱尚未過期;
- 該用戶在web端或者移動端登錄產(chǎn)品頁面;
- 該用戶使用了產(chǎn)品的部分或全部功能,如基于信息源或者地域的定向監(jiān)測功能;
- 該用戶在此期間產(chǎn)生了一定消費,如文本數(shù)據(jù)下載、訂閱續(xù)費、定制報告等;
- 該用戶在此期間對該產(chǎn)品有各種反饋,包括投訴。
…
對于這款產(chǎn)品來說,以月份為單位來分析用戶行為是很有意義的—因為該產(chǎn)品最短的訂閱期是一個月,最長的訂閱期是一年。
一旦清晰的界定了“用戶活躍”的定義,我們就可以用這些操作性定義來對每個月份的用戶(不)活躍情況進(jìn)行編碼,利用二進(jìn)制值(0,1)—假如在X月份,用戶是活躍的,將ta的活躍值設(shè)定為1,否則設(shè)定為0。
2 建立“用戶不活躍檔案”
現(xiàn)在,對于每位用戶,我們有了一個以月為單位的“活躍標(biāo)記”,接下來我們以此為基礎(chǔ),建立起“用戶不活躍檔案”。這意味著,對于每個用戶,筆者想對他們連續(xù)不活躍的月份數(shù)進(jìn)行計數(shù)統(tǒng)計。
在這里,筆者選擇了一年的“分析窗口”(也就是把12個月作為分析的時間范圍),將“活躍檔案”和“不活躍檔案”以表格的形式呈現(xiàn)—藍(lán)色表單顯示每位用戶在各個月份上的活躍記錄,綠色表單則顯示用戶的不活躍記錄。根據(jù)用戶在此時間段內(nèi)可能出現(xiàn)的活躍情形,筆者枚舉出3種典型用戶,如下表所示:
用戶A:該用戶在剛進(jìn)入“分析窗口”時是活躍的,然而在5月變得不活躍(也就是說,5月份是第一個不活躍的月份)。接下來,這個用戶的不活躍狀態(tài)持續(xù)到了12月,也就一直持續(xù)到了“分析窗口”的末尾。因此,從5月到12月,“用戶不活躍檔案”對用戶連續(xù)不活躍的月份進(jìn)行逐月累加的計數(shù)統(tǒng)計。
用戶B:跟用戶A一樣,該用戶剛開始也是活躍的。不同的是,該用戶在3~6月期間是不活躍的,在7月僅維持了一個月的活躍狀態(tài), 接著在8月和9月又進(jìn)入不活躍狀態(tài),最后在“分析窗口”的10月,11月和12月又回到活躍狀態(tài)。在這種情況下,每當(dāng)用戶由不活躍狀態(tài)返回活躍狀態(tài)時,前面的不活躍月份計數(shù)需要重置。也就是說,當(dāng)我們再次對該用戶的連續(xù)不活躍月份進(jìn)行計數(shù)時,需要重新從1開始計數(shù),前面的不活躍月份計數(shù)不再累加。
用戶C:與上述提及的兩類用戶不同,該用戶剛進(jìn)入“分析窗口”時,是不活躍的狀態(tài)。這種情形的發(fā)生,可能是用戶的訂閱早已過期(最好在正式分析前排除這種情形,因為很難處理),或者該用戶在“分析窗口”開始前就是不活躍的。因為我們看不到“分析窗口”前的用戶活躍情況,所以用戶在此之前的活躍狀態(tài),我們是不了解的。鑒于此狀況,我們對這些月份進(jìn)行特殊的標(biāo)記—使用-1標(biāo)記用戶C頭幾個不活躍的月份。該用戶其他的不活躍情形,可以參照前面兩類用戶方式進(jìn)行計數(shù)。
Note:后面綠色的表單,也就是“用戶不活躍檔案”,才是我們接下來建立用戶流失模型的數(shù)據(jù)基礎(chǔ)。
3 構(gòu)建用戶流失模型
有了上述的關(guān)于用戶不活躍的操作性定義,我們就可以在“分析窗口”內(nèi)(1月份到12月份)以月份為單位,對從0到12的連續(xù)不活躍月份數(shù)上的用戶數(shù)量進(jìn)行計數(shù)統(tǒng)計。
這個步驟可以通過數(shù)據(jù)透視表實現(xiàn)—通過聚合每個月、每個不活躍級別的用戶數(shù)量。 如下表所示:
上表中,從列的方向上來看,每個單元格的數(shù)值表示每個月的連續(xù)不活躍X個月的用戶的數(shù)量。舉個例子來說,上表中第一個高亮數(shù)值(574),代表1月份已經(jīng)不活躍1個月的用戶數(shù)量,該數(shù)值來自于前面12月份的4815個活躍用戶。第二個高亮數(shù)值(425)表示在2月份已經(jīng)連續(xù)不活躍2個月的用戶數(shù)量—425來自于574(1月份不活躍1個月的用戶數(shù),它是2月份不活躍2個月的用戶數(shù)的基數(shù))。值得注意的是,第一行的0個連續(xù)不活躍月份數(shù),其實表示的是基數(shù)中活躍用戶的數(shù)量。
使用這些數(shù)據(jù),我們可以計算出在“分析窗口”內(nèi),每個月連續(xù)不活躍月份數(shù)的用戶占比情況。如下面的綠色表格所示:
上表中,高亮的數(shù)值(74%)表示2月份已經(jīng)連續(xù)2個月不活躍的用戶占比。該百分比是這樣計算得到的:
筆者想獲得最具代表性的數(shù)值,由此可以對“分析窗口”的最末4個月(9月,10月,11月和12月)取平均值。我們可能沒有足夠的數(shù)據(jù)去計算這些平均值(比如10月份,11月份和12月份)—在這種情況下,我們?nèi)∷锌捎脭?shù)值的平均值(用于計算平均值的數(shù)值區(qū)域以紅色線框標(biāo)記):
4 計算用戶流失概率
哈哈,如果你還在看這篇文章,那么恭喜你!我們將要探討最激動人心的部分…在這部分,我們將用上一點統(tǒng)計學(xué)的小知識。
讓我們回顧一下本文的終極目標(biāo)—計算各個連續(xù)不活躍月份數(shù)(0-12)下的用戶流失概率。
也就是說,如果某個用戶已經(jīng)連續(xù)X個月不活躍,那么這個用戶接下來將要流失的可能性有多大?從數(shù)學(xué)上來說,我們可以使出貝葉斯公式這個大殺器來計算用戶流失率。貝葉斯公式盡管是一個數(shù)學(xué)公式,但它的原理不要數(shù)字也能明了。如果,你看到一個人總是做一些好事,則那個人多半會是一個好人。該數(shù)學(xué)公式包含著樸素的真理:
當(dāng)你不能準(zhǔn)確知悉一個事物的本質(zhì)時,你可以依靠與事物特定本質(zhì)相關(guān)的事件出現(xiàn)的多少去判斷其本質(zhì)屬性的概率。
用數(shù)學(xué)語言表達(dá)就是:支持某項屬性的事件發(fā)生得愈多,則該屬性成立的可能性就愈大。它的數(shù)學(xué)形式如下:
在這里,A和B都代表事件(Event),同時P(B)≠0。P(A)和P(B) 分別代表A和B的先驗概率或邊緣概率。之所以稱為”先驗”是因為它不考慮任何A(B)方面的因素。P(A|B)是已知B發(fā)生后A的條件概率,也由于得自B的取值而被稱作A的后驗概率。P(B|A)是已知A發(fā)生后B的條件概率,也由于得自A的取值而被稱作B的后驗概率。
在本案例中,對應(yīng)的公式如下所示:
然并卵,上面公式里有一項是沒啥意義的—P(連續(xù)X個月不活躍|流失),它的含義是“在已經(jīng)流失的情況下,連續(xù)X個月不活躍的概率“。試想一下,假如你已經(jīng)流失掉了,你不可能是一個不活躍的狀態(tài),這個概率值是么有啥業(yè)務(wù)意義的。鑒于此種情形,筆者果斷拋棄這一項(謹(jǐn)記?。?。由此,我們得到了一個終極版的流失率計算公式:
接下來,讓我們看看公式右端的兩項(分子和分母),然后計算它們在每個不活躍月份上的數(shù)值,進(jìn)而得到我們想要的用戶流失概率值(注意,它是一個條件概率值,也就是在連續(xù)不活躍X個月的情況下的用戶流失概率)。
先說說分母P(連續(xù)X個月不活躍),筆者之前已經(jīng)計算過它們—也就是“分析窗口”最后4個月占比平均值:
P(1) = 19%
P(2) = 81%
P(3) = 89%
P(4) = 92%
P(5) = 93%
P(6) = 95%
P(7) = 96%
P(8) = 97%
…
接下來,我們再來通過例子求解分子P(流失)。首先,1個月不活躍的用戶的流失概率P(C1)是多少呢?對于這些將要流失的用戶,他們將要連續(xù)性的不活躍的月份數(shù)已經(jīng)在我們所考慮的集合之內(nèi)了,換言之,這些用戶將要不活躍的月份數(shù)為1個月,2個月,3個月,…,。因而,我們這樣定義已經(jīng)不活躍1個月的用戶的流失概率P(C1):
現(xiàn)在,?以同樣的方式,?持續(xù)2個月不活躍的用戶的?P(流失)?,也就是P(C2)是多少呢?對于這些將要流失的用戶,他們將要持續(xù)性的不活躍,2個月,3個月,4個月,…,12個月。因而,我們這樣定義已經(jīng)連續(xù)不活躍2個月的用戶的流失概率P(C2):
通過歸納和演繹,我們以同樣的方式來計算每個不活躍月份的用戶流失概率:
在這里,n是連續(xù)不活躍月份數(shù)的極限值,而我們發(fā)現(xiàn),這個概率是穩(wěn)定的。從上面的表單里可以到,這個發(fā)生在第7個連續(xù)的月份,這里的概率值維持在95~96%。
簡化起見,我們假設(shè),在連續(xù)月份上不活躍是相互獨立的事件。此時, P(A ∩ B )= P(A)* P(B)。因而,我們可以采用如下的公式:
現(xiàn)在,我們已經(jīng)算出了每個不活躍月份概率對應(yīng)的分子和分母,那我們就可以啟動最后一步—算出每個各個連續(xù)不活躍月份數(shù)的用戶流失概率。先前我們已經(jīng)討論過了,n的值為7。
…
最終的計算結(jié)果如下表所示:
請注意,活躍用戶(也就是第一行連續(xù)0個月不活躍的情形)的流失率由P(1) Ⅹ P(2) Ⅹ P(3) Ⅹ P(4) Ⅹ … Ⅹ P(7)計算得出。這里我們并沒有除以任何值,這是因為—當(dāng)用戶處于活躍狀態(tài)時, P(連續(xù)0個月不活躍)為1。
最后,我們還可用一條流失率曲線來直觀的反映流失率的變化情況,由此決定對非活躍用戶進(jìn)行挽留操作的最佳時機(jī),該曲線所下圖所示:
5?結(jié)語
在本文中,筆者并沒有提供該模型批量化使用的具體執(zhí)行細(xì)節(jié),假如你理解了這個模型構(gòu)建的邏輯,那么你可以使用SQL、Python,甚至是Excel來實現(xiàn)它。
此外,在實踐中,這個模型最好是分不同的用戶群進(jìn)行運(yùn)行。在本文中,筆者僅僅在某一類用戶上運(yùn)行,然而,根據(jù)不同的標(biāo)準(zhǔn)來劃分用戶群體會對實際業(yè)務(wù)更有意義。比如,你可以根據(jù)用戶價值進(jìn)行劃分,然后對每個用戶子群體進(jìn)行用戶流失預(yù)測。
當(dāng)然,筆者只是在月份的尺度上進(jìn)行用戶流失分析,但是,對于很多業(yè)務(wù)場景,更細(xì)粒度的分析視角可能更有意義,比如按周和按天。
最后,以《神雕俠侶》中的一段話作結(jié),我想,感悟到數(shù)學(xué)之美、不受分析工具的限制,并能靈活運(yùn)用到實際業(yè)務(wù)中的感受大抵如此:
過了良久,青衣人又將巨劍放下,去取第三柄劍,那卻是一柄木劍,落在手中輕若無物,但見劍下的石刻道:
“四十歲后,不滯于物,草木竹石均可為劍。自此精修,漸進(jìn)于無劍勝有劍之境!”
參考資料:
3.PredictingChurn without Machine Learning
#專欄作家#
蘇格蘭折耳喵,微信公眾號:Social Listening與文本挖掘,人人都是產(chǎn)品經(jīng)理專欄作家。數(shù)據(jù)PM一只,擅長數(shù)據(jù)分析和可視化表達(dá),熱衷于用數(shù)據(jù)發(fā)現(xiàn)洞察,指導(dǎo)實踐。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自PEXELS,基于CC0協(xié)議
“在這里,n是連續(xù)不活躍月份數(shù)的極限值,而我們發(fā)現(xiàn),這個概率是穩(wěn)定的。從上面的表單里可以到,這個發(fā)生在第7個連續(xù)的月份,這里的概率值維持在95~96%?!笨床欢?為何要取7 概率穩(wěn)定就取7?如果取的是 最末三個月的呢?還是根據(jù)“穩(wěn)定”來取 n?
最末四個月的均值(即P(1)=19%,P(2)=81%,……..),應(yīng)該已經(jīng)是條件概率了吧?19%是“上個月活躍的用戶中,第二個月未活躍的占比”,81%是“上個月連續(xù)一個月未活躍的用戶中,第二個月連續(xù)兩個月未活躍的占比”。并不是文中說的“連續(xù)X個月未活躍”的概率。
道理同
在這里,n是連續(xù)不活躍月份數(shù)的極限值,而我們發(fā)現(xiàn),這個概率是穩(wěn)定的。從上面的表單里可以到,這個發(fā)生在第7個連續(xù)的月份,這里的概率值維持在95~96%。
這句沒看懂…
感謝分享
有幾點我覺得可以一起討論
1、這個算法在工程上的實現(xiàn),貌似比機(jī)器學(xué)習(xí)還要復(fù)雜。在MODELER里用決策樹進(jìn)行實現(xiàn),也只需要完成文章所述第一步的數(shù)據(jù)準(zhǔn)備,也就是用戶行為統(tǒng)計這一步,就可以使用決策樹算法進(jìn)行建模了
2、使用決策樹的方法,其實跟上述的原理類似,機(jī)器學(xué)習(xí)本身也是基于統(tǒng)計的。不同的點在于,本文只能說明用戶連續(xù)N個月不活躍而流失的概率,而決策樹可以把“不活躍”這一特征拆開了揉碎了來告訴我們客戶流失的概率
機(jī)器學(xué)習(xí)不是每個人都會的,學(xué)習(xí)成本很高。我介紹的方式的主要目的在于重拾以前學(xué)的數(shù)學(xué)知識,靈活運(yùn)用到工作場景中,可操作性強(qiáng)。
“筆者想獲得最具代表性的數(shù)值,由此可以對“分析窗口”的最末4個月(9月,10月,11月和12月)取平均值?!边@里不太明白,為什么要這么取呢?
取用戶占比的均值,最末四個月在縱軸上的覆蓋長度最長,對它們?nèi)【稻哂写硇?/p>
請問,“最末四個月在縱軸上的覆蓋長度最長”這個覆蓋長度具體指什么呢?
“連續(xù)不活躍月份數(shù)”,你試著從縱軸方向上來看
后面的公示 我是看服了
學(xué)習(xí)了