Python條件生存森林模型Conditional Survival Forest 預(yù)測(cè)客戶流失交叉驗(yàn)證
原文鏈接:http://tecdat.cn/?p=26982?
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
?
簡(jiǎn)介
客戶流失/流失,是企業(yè)最重要的指標(biāo)之一,因?yàn)楂@取新客戶的成本通常高于保留現(xiàn)有客戶的成本。
事實(shí)上,根據(jù)一個(gè)?study by Bain & Company,隨著時(shí)間的推移,現(xiàn)有客戶傾向于從公司購(gòu)買(mǎi)更多產(chǎn)品,從而降低企業(yè)的運(yùn)營(yíng)成本,并可能將他們使用的產(chǎn)品推薦給其他人。例如,在金融服務(wù)領(lǐng)域,客戶保留率每增加 5%,利潤(rùn)就會(huì)增加 25% 以上。
通過(guò)使用生存分析,公司不僅可以預(yù)測(cè)客戶是否可能停止開(kāi)展業(yè)務(wù),還可以預(yù)測(cè)該事件何時(shí)發(fā)生。
數(shù)據(jù)集
描述和概述
團(tuán)隊(duì)想要使用的數(shù)據(jù)集包含以下功能:

從分類(lèi)到數(shù)值
有幾個(gè)分類(lèi)特征需要編碼為 one-hot 向量:
探索性數(shù)據(jù)分析
在這里,我們將只檢查數(shù)據(jù)集是否包含 Null 值或是否有重復(fù)的行。然后,我們將看看特征相關(guān)性。
空值和重復(fù)
首先要做的是檢查 raw_dataset 是否包含 Null 值和重復(fù)的行。
事實(shí)證明,數(shù)據(jù)集沒(méi)有任何 Null 值或重復(fù)項(xiàng)。
相關(guān)性
讓我們計(jì)算和可視化特征之間的相關(guān)性

圖 1 - 相關(guān)性
建模
構(gòu)建模型
為了稍后執(zhí)行交叉驗(yàn)證并評(píng)估模型的性能,讓我們將數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集。
注意:超參數(shù)的選擇是使用網(wǎng)格搜索選擇獲得的。
變量重要性
建立生存森林模型后,我們可以計(jì)算特征重要性:
這是最重要的功能中的前 5 個(gè)。
?

由于功能的重要性,我們可以更好地了解是什么推動(dòng)了保留或流失。在這里,會(huì)計(jì)和薪資管理產(chǎn)品、滿意度調(diào)查得分以及與客戶支持通話的時(shí)間都發(fā)揮著重要作用。
注意:重要性是擾動(dòng)和未擾動(dòng)錯(cuò)誤率之間的預(yù)測(cè)誤差差異
交叉驗(yàn)證
為了評(píng)估模型性能,我們之前將原始數(shù)據(jù)集拆分為訓(xùn)練集和測(cè)試集,以便我們現(xiàn)在可以在測(cè)試集上計(jì)算其性能指標(biāo):
?C-index
這C-index代表模型辨別能力的全局評(píng)估:?這是模型根據(jù)個(gè)體風(fēng)險(xiǎn)評(píng)分正確提供生存時(shí)間可靠排名的能力。一般來(lái)說(shuō),當(dāng) C-index 接近 1 時(shí),模型具有近乎完美的判別力;但如果接近0.5,則沒(méi)有區(qū)分低風(fēng)險(xiǎn)和高風(fēng)險(xiǎn)對(duì)象的能力。
Brier score
這Brier score測(cè)量給定時(shí)間狀態(tài)和估計(jì)概率之間的平均差異。?因此,分?jǐn)?shù)越低(通常低于 0.25),預(yù)測(cè)性能就越好。為了評(píng)估跨多個(gè)時(shí)間點(diǎn)的整體誤差測(cè)量,通常還計(jì)算綜合 Brier 分?jǐn)?shù) (IBS)。

圖 2 - 條件生存森林 - Brier 分?jǐn)?shù)和預(yù)測(cè)誤差曲線
IBS 在整個(gè)模型時(shí)間軸上等于 0.13。這表明該模型將具有良好的預(yù)測(cè)能力。
預(yù)測(cè)
總體預(yù)測(cè)
既然我們已經(jīng)建立了一個(gè)似乎可以提供出色性能的模型,讓我們比較每個(gè)時(shí)間 t 停止與 SaaS 公司開(kāi)展業(yè)務(wù)的實(shí)際客戶數(shù)量和預(yù)測(cè)客戶數(shù)量的時(shí)間序列。

圖 3 - 條件生存森林 - 流失的客戶數(shù)量
該模型總體上提供了非常好的結(jié)果,因?yàn)樵谡麄€(gè) 12 個(gè)月的窗口中,它只會(huì)產(chǎn)生約 5 個(gè)客戶的平均絕對(duì)誤差。
個(gè)人預(yù)測(cè)
讓我們計(jì)算在?所有時(shí)間 t 中保留客戶的概率。
首先,我們可以根據(jù)風(fēng)險(xiǎn)評(píng)分分布構(gòu)建風(fēng)險(xiǎn)組。

圖 4 - 條件生存森林 - 風(fēng)險(xiǎn)組
在這里,可以區(qū)分 3 個(gè)主要群體,?低風(fēng)險(xiǎn)、?中風(fēng)險(xiǎn)?和?高?風(fēng)險(xiǎn)群體。由于 C 指數(shù)較高,模型將能夠?qū)γ拷M隨機(jī)單元的生存時(shí)間進(jìn)行適當(dāng)?shù)呐判颉?/p>
讓我們隨機(jī)選擇每組中的單個(gè)單元,并比較它們?cè)谒袝r(shí)間 t 中保留客戶的概率。為了證明我們的觀點(diǎn),我們將特意選擇經(jīng)歷過(guò)事件的單位來(lái)可視化事件的實(shí)際時(shí)間。

圖 5 - 條件生存森林 - 預(yù)測(cè)個(gè)人保留客戶的概率
在這里,我們可以看到該模型設(shè)法提供了對(duì)事件時(shí)間的出色預(yù)測(cè)。
結(jié)論
我們現(xiàn)在可以保存我們的模型,以便將其投入生產(chǎn)并為未來(lái)的客戶評(píng)分。
總之,我們可以看到,可以預(yù)測(cè)客戶在不同時(shí)間點(diǎn)停止與公司開(kāi)展業(yè)務(wù)的時(shí)間。該模型將幫助公司在留住客戶方面更加積極主動(dòng);并更好地了解導(dǎo)致客戶流失的原因。

最受歡迎的見(jiàn)解
1.PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹(shù)、支持向量機(jī)、樸素貝葉斯模型和KMEANS聚類(lèi)用戶畫(huà)像
2.R語(yǔ)言基于樹(shù)的方法:決策樹(shù),隨機(jī)森林
3.python中使用scikit-learn和pandas決策樹(shù)
4.機(jī)器學(xué)習(xí):在SAS中運(yùn)行隨機(jī)森林?jǐn)?shù)據(jù)分析報(bào)告
5.R語(yǔ)言用隨機(jī)森林和文本挖掘提高航空公司客戶滿意度
6.機(jī)器學(xué)習(xí)助推快時(shí)尚精準(zhǔn)銷(xiāo)售時(shí)間序列
7.用機(jī)器學(xué)習(xí)識(shí)別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用
8.python機(jī)器學(xué)習(xí):推薦系統(tǒng)實(shí)現(xiàn)(以矩陣分解來(lái)協(xié)同過(guò)濾)
9.python中用pytorch機(jī)器學(xué)習(xí)分類(lèi)預(yù)測(cè)銀行客戶流失