賈承瑞
(海南大學(xué)管理學(xué)院,海南 海口 570228)
隨著信息技術(shù)的高速發(fā)展,客戶對產(chǎn)品或服務(wù)的信息獲取越來越充分,顧客的需求也因此更加多樣化。尤其伴隨著“互聯(lián)網(wǎng)+”的興起,客戶對產(chǎn)品有了更多的選擇,激烈的市場競爭,使得客戶流失已經(jīng)成為許多企業(yè)不可避免的問題[1]。如何在眾多競爭者中脫穎而出,盡可能降低客戶的流失率,成為各大企業(yè)經(jīng)營者必須思考的問題。
本研究以某酒店平臺的用戶數(shù)據(jù)為基礎(chǔ),利用Python對數(shù)據(jù)進(jìn)行挖掘和分析,首先利用傳統(tǒng)機(jī)器學(xué)習(xí)算法中Accuracy值最高的隨機(jī)森林算法找出影響酒店客戶是否流失最重要的10個(gè)因素;隨后利用該組影響因素將用戶分為11個(gè)群體,采用機(jī)器學(xué)習(xí)中的交叉驗(yàn)證方法,每次抽取1組作為測試集,其余10組作為訓(xùn)練集,從而計(jì)算每個(gè)群體中的預(yù)測流失率(pred_prob)和實(shí)際流失率(true_prob),對比兩者的差異得出誤差率(err_rate)。從而發(fā)現(xiàn)隨機(jī)森林算法在true_prob為極值和中間值時(shí),預(yù)測效果較好;而在true_prob為10%~40%和60%~90%的群體中預(yù)測效果較差。使用Accuracy稍低的支持向量機(jī)算法重新計(jì)算該類中間群體后,卻有較好的預(yù)測效果。
本研究數(shù)據(jù)全部來自某酒店預(yù)定網(wǎng)站2016年5月15日~2016年5月21日一周內(nèi)的網(wǎng)絡(luò)訂單用戶數(shù)據(jù)。為保護(hù)用戶隱私,數(shù)據(jù)經(jīng)過脫敏處理,和實(shí)際商品的訂單量、瀏覽量、轉(zhuǎn)化率等有一些差距,但是不影響此研究的分析。影響因素包括酒店和用戶兩部分,主要有當(dāng)前酒店歷史用戶轉(zhuǎn)化率(cr)、當(dāng)前酒店可訂最低價(jià)格、24小時(shí)內(nèi)是否訪問訂單填寫頁、用戶決策習(xí)慣、近7天用戶歷史訂單數(shù)、24小時(shí)內(nèi)登陸時(shí)長、用戶消費(fèi)能力指數(shù)、價(jià)格敏感指數(shù)等共計(jì)51項(xiàng)相關(guān)變量。數(shù)據(jù)清理后,有效數(shù)據(jù)共計(jì)24286條。
在進(jìn)行數(shù)據(jù)建模前要對所有變量進(jìn)行描述性分析。表1給出主要變量的解釋說明。在后續(xù)的建模分析中,本研究以均值加減3倍標(biāo)準(zhǔn)差作為識別異常值的標(biāo)準(zhǔn),如果取值在這個(gè)范圍之外,被認(rèn)為是異常值,在建模分析中予以刪除。
表1 流失用戶主要變量描述性分析結(jié)果
本研究的因變量是客戶是否流失,是一個(gè)典型的0—1變量。流失定義為,用戶在瀏覽酒店網(wǎng)頁后未產(chǎn)生訂單。而客戶是否流失在源數(shù)據(jù)的churn列已經(jīng)給出了相應(yīng)的判別值,0為流失,1為非流失。經(jīng)過統(tǒng)計(jì)分析可知,該酒店平臺的流失率維持在50.06%左右,主要變量的描述性分析結(jié)果如表1。從表中可以初步得到,流失用戶在一年內(nèi)的訂單/取消訂單數(shù)的標(biāo)準(zhǔn)差較大,決策習(xí)慣較不穩(wěn)定。
隨機(jī)森林(Random Forest,RF)是一種基于Bagging的集成學(xué)習(xí)方法,可以用于分類和回歸問題。它由多個(gè)決策樹構(gòu)成,樹的構(gòu)建遵從CART 策略,并不進(jìn)行剪枝[2]。
首先要將自變量中的字符串轉(zhuǎn)化成布爾邏輯值(0-1),并刪除掉一些無用的屬性。由于要將隨機(jī)森林算法與其他非概率型機(jī)器學(xué)習(xí)算法進(jìn)行比較,所以在Python中使用StandardScaler函數(shù)將每個(gè)特征標(biāo)準(zhǔn)化為大約1.0到-1.0的范圍,來實(shí)現(xiàn)歸一化。
在構(gòu)建模型時(shí),調(diào)參是極為重要的一個(gè)步驟,只有選擇最佳的參數(shù)才能構(gòu)建一個(gè)最優(yōu)的模型。而參數(shù)的值可以通過交叉驗(yàn)證的方法,逐個(gè)來驗(yàn)證。我們將數(shù)據(jù)集隨機(jī)分為11組進(jìn)行交叉驗(yàn)證,將每一組都當(dāng)做一次測試集,其余10組當(dāng)做訓(xùn)練集,這樣循環(huán)11次。通過傳入的模型,訓(xùn)練11次,最后將11次結(jié)果求平均值。通過此種方法避免過擬合,同時(shí)為每個(gè)觀測數(shù)據(jù)集生成預(yù)測。
根據(jù)隨機(jī)森林算法中各特征值的信息增益率高低,對自變量的重要程度進(jìn)行排序,可以得到排名前五的影響因素分別為commentnums、historyvisit_totalordernum、landhalfhours、hotelcr和iforderpv_24h。
準(zhǔn)確率的定義是,對于給定的測試數(shù)據(jù)集,分類器正確分類的樣本數(shù)與總樣本數(shù)之比。也就是損失函數(shù)是0-1損失時(shí)測試數(shù)據(jù)集上的準(zhǔn)確率。我們使用內(nèi)置的scikit-learn函數(shù)來構(gòu)建混淆矩陣?;煜仃囀且环N可視化分類器預(yù)測的方式,用一個(gè)表格來顯示特定類的預(yù)測分布。x軸表示每個(gè)觀察的真實(shí)類別,而y軸對應(yīng)于模型預(yù)測的類別。
為了比較隨機(jī)森林在常用機(jī)器學(xué)習(xí)算法中的性能,引入LR、GB、SVM、KNN等模型進(jìn)行性能比較。可以得到各算法的總體準(zhǔn)確率分別為,LR 最低,為61.2%;GB、SVM和KNN算法的準(zhǔn)確率分別為 70.7%、72.4%、80.4%;RF最高,為88.2%。
有時(shí)我們并不關(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率。隨機(jī)森林就是一種概率模型。一般來說,輸出概率要比輸出決策結(jié)果更有說服力。在Python中根據(jù)預(yù)測概率分布對源數(shù)據(jù)進(jìn)行切分,生成11個(gè)組群體,分別計(jì)算各群體的預(yù)測流失率(pred_prob)和實(shí)際流失率(true_prob),對比兩者的差異得出誤差率(err_rate)。得到的概率分布情況如表2所示,可以明顯看出true_prob為極值和中間值時(shí),預(yù)測效果較好,平均誤差率在1%以下;而在其余流失群體(true_prob為10%~40%或60%~90%)中預(yù)測效果較差,平均誤差率高達(dá)12.5%以上。由此說明,總體準(zhǔn)確率最高的隨機(jī)森林算法,在特征群體預(yù)測中存在缺陷,對某些特定群體的預(yù)測誤差率很低,而對另外一些群體的誤差率很高,存在改進(jìn)空間。
表2 特征群體的概率分布
從表2中可以明顯看出隨機(jī)森林模型的缺陷。為了對比不同機(jī)器學(xué)習(xí)模型的預(yù)測概率,在此部分引入一致性/標(biāo)定度(Calibration)和區(qū)分度(Descrimination)的概念。
標(biāo)定度的意思是,評價(jià)模型預(yù)測值的數(shù)值大小和實(shí)際事件發(fā)生概率的大小是否一致。假設(shè)我們這個(gè)模型已經(jīng)能夠很好地區(qū)分開“酒店客戶流失”和“酒店客戶未流失”兩類,并且某名客戶恰好屬于“客戶流失”這一類,但是還想進(jìn)一步分析,在這一類里,是不是模型的預(yù)測值越大,該客戶就越容易流失呢?由此定義,如果模型的預(yù)測值越大,真實(shí)發(fā)生概率越大的話,就表明標(biāo)定度越好。即標(biāo)定度的值越低,說明模型的特征群體誤差率越小。常用的衡量標(biāo)準(zhǔn)為擬合優(yōu)度檢驗(yàn)。
區(qū)分度的意思是,在模型的預(yù)測值上,能不能找到一個(gè)截點(diǎn),把酒店客戶流失和酒店客戶未流失,這兩類客戶區(qū)分開來,如果模型區(qū)分的兩類客戶和真實(shí)情況越吻合,說明模型的區(qū)分度越高,最理想的狀態(tài)就是通過模型區(qū)分的“客戶是/否流失”的這兩組人=真實(shí)情況中“客戶是/否流失”的這兩組人,那么這個(gè)模型的區(qū)分度就是1。常用的衡量指標(biāo)為ROC曲線下的面積(AUC值)。
從表3中可以看出,采用兩項(xiàng)指標(biāo)進(jìn)行重新評價(jià)后,可得隨機(jī)森林雖然在區(qū)分度值中仍具有優(yōu)勢,但標(biāo)定度卻為最低。而支持向量機(jī)模型(Support Vector Machine,SVM)在標(biāo)定度中表現(xiàn)優(yōu)異,僅有0.0016,說明將其用于某些特征群體中的預(yù)測可以取得較小的誤差率。
表3 不同算法指標(biāo)得分
由上述結(jié)論分析,進(jìn)一步嘗試使用RF-SVM混合模型。本文使用兩步預(yù)測法,先使用SVM算法進(jìn)行第一次預(yù)測,然后使用RF算法進(jìn)行特征值的降維進(jìn)行第二次預(yù)測,從而進(jìn)一步提升結(jié)果準(zhǔn)確性?;旌夏P偷腞OC曲線下與坐標(biāo)周圍成的面積(AUC值)得到進(jìn)一步提升,即區(qū)分度值變大;總體預(yù)測的準(zhǔn)確率也上升至92.3%。
客戶流失作為客戶生命周期管理的重要階段,一直是學(xué)術(shù)界和工業(yè)界的研究熱點(diǎn)。如何準(zhǔn)確地預(yù)測客戶的流失傾向,已成為客戶管理關(guān)系研究的重要問題。準(zhǔn)確率作為預(yù)測模型中最常用的評估度量指標(biāo)之一,常常用來評價(jià)預(yù)測模型分類能力的優(yōu)劣。而本研究發(fā)現(xiàn)單一的準(zhǔn)確率評價(jià)指標(biāo)不能準(zhǔn)確說明某些特征群體的客戶趨向。
以某酒店平臺的用戶數(shù)據(jù)為基礎(chǔ),利用Python對數(shù)據(jù)進(jìn)行挖掘和分析,首先利用傳統(tǒng)機(jī)器學(xué)習(xí)算法中Accuracy值最高的隨機(jī)森林算法找出影響酒店客戶是否流失最重要的10個(gè)因素;隨后利用該組影響因素將用戶分為11個(gè)群體,采用機(jī)器學(xué)習(xí)中的交叉驗(yàn)證方法,每次抽取1組作為測試集,其余10組作為訓(xùn)練集,從而計(jì)算每個(gè)群體中的預(yù)測流失率(pred_prob)和實(shí)際流失率(true_prob),對比兩者的差異得出誤差率(err_rate)。從而發(fā)現(xiàn)隨機(jī)森林算法在true_prob為極值和中間值時(shí),預(yù)測效果較好;而在true_prob為10%~40%和60%~90%的群體中預(yù)測效果較差。而通過Calibration和Descrimination的兩項(xiàng)指標(biāo)進(jìn)行進(jìn)一步測評,Accuracy稍低的支持向量機(jī)卻具有最高的Calibration值,說明中間群體使用SVM算法會(huì)具有更好地預(yù)測效果。最后,結(jié)合RF和SVM算法在Python中構(gòu)建出兩步綜合模型,將預(yù)測準(zhǔn)確率進(jìn)一步提升至92.3%。
本研究仍存在繼續(xù)探討的空間:①本文僅基于某酒店平臺的用戶數(shù)據(jù)分析了RF算法的缺陷,而該缺陷是否具有普遍性,是否同樣存在于其他領(lǐng)域用戶流失的預(yù)測中,有待進(jìn)一步驗(yàn)證;②本次研究對用戶數(shù)據(jù)中的日期類特征值進(jìn)行了刪除,實(shí)際情況中,酒店的預(yù)訂率很大程度上會(huì)受到節(jié)假日、工作日等特定日期的影響,包含日期的酒店用戶數(shù)據(jù)流失分析有待進(jìn)一步探討;③用戶數(shù)據(jù)的特征值可以用主成分分析法進(jìn)行降維,能否構(gòu)建出特征值之間的線性表達(dá)式,從而進(jìn)一步解釋影響酒店客戶流失的原因;④RF和SVM算法是否存在其他的融合方法,從而進(jìn)一步提高預(yù)測的準(zhǔn)確率。