王 妍,孫克爭,高小虎
(江蘇商貿職業學院,江蘇 南通 226011)
客戶流失是餐飲企業普遍面臨的問題。客戶流失會導致餐飲企業營業額下降,嚴重的客戶流失會導致餐飲企業因入不敷出而倒閉。在餐飲行業中,維系一個老客戶的成本遠低于挖掘一個新用戶的成本,且老用戶在復購時是為企業進行無形的宣傳,拉動新客戶,從而減少了宣傳成本[1]。可見,老客戶流失會對餐飲企業造成不小的損失,減少老客戶流失對餐飲企業發展尤為重要。餐飲企業需預測有可能流失的客戶,在客戶流失前分析其流失原因,找尋提高客戶留存率的方法,制定相應挽留策略。
隨著大數據技術與網絡信息產業的發展,機器學習技術為數據分析提供了更加便捷的分析工具,餐飲企業可根據客戶基本信息及消費產生的訂單信息,構建客戶流失特征,提前識別將要流失的客戶,根據客戶流失的重要特征制定相應的挽留策略,降低客戶流失率,提高經濟效益。白瑞瑞使用邏輯回歸、決策樹、隨機森林、XGBoost模型,分析在攜程網預定酒店客戶的流失情況的預測效果[2]。王興麗使用單一分類算法與集成分類算法,預測電信客戶的流失情況,發現集成算法在電信客戶流失預測中的效果較好[3]。張靜怡建立決策樹模型,利用歷史交易數據預測證券市場的客戶流失情況,證明該模型可較精確地預測潛在客戶的流失[4]。張葉航使用隨機森林算法建立車險客戶流失預測模型,發現該模型可輸出客戶流失概率,有效實現客戶細分,幫助車險公司挽留客戶[5]。
本研究構建客戶流失特征,分別建立決策樹與支持向量機模型,對客戶的流失情況進行預測,分析判斷兩種模型的預測能力與準確度,以期利用其指導餐飲企業制定挽留客戶策略,減少餐飲企業的損失。
決策樹的結構是樹狀結構,由一個根節點、一些內部節點及一些葉節點構成。根節點為樣本集,葉節點對應分類結果,內部節點則為特征或屬性,從根節點到每個葉節點的路徑都對應一個判別序列。決策樹算法是通過遞歸過程生成泛化能力強的決策樹,其基本執行流程為分而治之。構造決策樹的關鍵是選擇適當的特征對樣本進行拆分,常用的算法及選擇特征準則有CART(基尼系數)、ID3(信息增益)及C4.5(信息增益比值)。決策樹中的剪枝是為了避免過擬合,提高其泛化能力。盡管很多分類算法的分類能力都超過了決策樹算法,但是決策樹算法的可視化分類規則功能是其他算法無法替代的,常被用于分析特征影響最大,如較具樣特征的客戶流失概率會更高,等等。
決策樹的優點在于結果比較清晰易懂,能夠實現可視化分析,更加易于提取規則。決策樹可并行處理數值型與類別型數據,在大型數據庫中同樣適用,模型大小與數據庫大小無關。決策樹的缺點是在特征數量多但樣本數量少的情況下,易出現過擬合現象,且不關注數據集中特征的關聯性。使用ID3算法計算信息增益時,結果往往受數值特征的影響。
支持向量機是特征空間中間隔最大的線性分類器,其中包含核函數,這使得支持向量機成為實質上的非線性分類器。支持向量機的學習要點是間隔最大化,可將間隔最大化轉化為求解凸二次規劃問題,等價于正則化的損失函數最小化問題。支持向量機是一種監督學習的數據挖掘算法,也是一種二分類算法,經轉化后也適用于多分類問題,在非線性分類方面具有顯著優勢,常用于處理二元分類問題。在機器學習領域中,支持向量機算法可用于分類、異常值檢測、模式識別及回歸分析,SVR是支持向量機算法在回歸方面的運用。支持向量機算法在文字識別、人臉識別、行人檢測及文本分類等領域都具有較好的應用效果。
支持向量機可對非線性分類進行建模,當發生過擬合時,支持向量機具有很強的魯棒性,在高維空間中魯棒性更強。其最終決策函數僅由少數的支持向量決定,計算的復雜性越強所需要的支持向量越多,這與樣本空間的維數無關,可避開維數災難。
使用某餐飲企業的客戶用餐數據,將其分別整理為客戶信息表與訂單詳情表。客戶信息表記錄了3361位客戶的基本信息,每條客戶信息都包括客戶ID、姓名、年齡、性別等34個特征,其特征說明詳見表1。訂單詳情表記錄了8783條客戶消費記錄,每條記錄有21個特征,其特征說明詳見表2。

表1 客戶信息表特征Tab.1 Description of customer information table features

表2 訂單詳情表特征Tab.2 Description of order details table characteristics
在對數據集進行預處理時,首先要檢查數據集中是否存在重復值,以免影響特征值的計算,導致模型預測出錯。客戶信息表中客戶ID是唯一主鍵,經檢查此表中不存在重復記錄。訂單詳情表中訂單ID是唯一主鍵,經檢查此表中不存在重復記錄。
建構客戶流失特征時,主要使用訂單詳情表中的數據,發現存在一張桌子同時被不同用戶使用的情況,即兩個訂單的桌子ID與開始使用時間相同,屬于異常值數據。經檢查,發現異常值的比重極小,不會對數據分析結果產生影響,故直接刪除異常值。
客戶信息表中存在大量的缺失值,因其特征項較多,客戶在開戶時預留信息不完整。而訂單詳情表中的數據大都由系統自動生成,數據較為完整,但也有部分缺失值。經研究發現,并不是每一項客戶信息表與訂單詳情表中的特征數據都可用于預測客戶流失,故提取關鍵特征,將客戶信息表中的客戶ID、最后一次登錄、客戶狀態特征以及訂單詳情表中的客戶ID、消費人數、消費金額特征以客戶ID為主鍵進行合并,使用pandas庫中的dropna函數對缺失值進行處理。經上述處理,共得到2547條完整的客戶記錄可用于模型的訓練與預測。
客戶流失大體上表現為4個方面:到店用餐次數越來越少、長時間未到店用餐、人均消費額較低、總消費額越來越低。基于此,構建6項客戶流失特征數據:用戶ID(USER_ID)、總用餐次數(frequence)、最近一次用餐距當前的天數(recently)、人均消費額(average)、總消費額(amount)及客戶流失標簽(TYPE),其中客戶流失標簽分為非流失、準流失、已流失三種。詳見表3。
選擇Anaconda軟件為實證研究平臺,因其擁有眾多流行的數據分析Python庫,其中就包含決策樹算法與支持向量機算法。構建的客戶流失預測流程詳見圖1。
為對比決策樹模型與支持向量機模型對客戶流失的預測能力,需保證用于訓練及測試的數據一致,且使用相同的模型評價方式。可用數據記錄共2547條,刪除已流失的客戶數據637條,將非流失與準流失數據按4∶1的比例劃分為訓練集與測試集,其中1528條數據記錄為訓練集數據,382條數據記錄為測試集數據。使用sklearn庫構建決策樹模型與支持向量機模型,分別對其進行訓練,使用測試集數據對訓練完畢的兩種模型進行預測,并自定義評價函數,使用評價函數計算模型的混淆矩陣、精確率及F1值。兩種模型的各項評價指標詳見表4。

表4 兩種模型的各項評價指標Tab.4 Each evaluation index of the two models
決策樹模型與支持向量機模型的精確率和F1值都很高,說明兩種模型的預測效果都很好,對客戶非流失與準流失的分類能力相對均衡。設置客戶的流失標簽為準流失與非流失,在模型的訓練與測試中,用0表示準流失,1表示非流失,分別用兩種模型預測測試集中客戶的流失狀態。根據餐飲企業對客戶流失預測的要求,對準流失客戶的預測結果更加重要,即把客戶流失標簽為0的客戶全預測為0更為重要。在測試集的382位客戶中,有167位非流失客戶與215位準流失客戶,決策樹模型預測的準流失客戶數為195位,準確率為0.907,而支持向量機模型預測的準流失客戶數為209位,準確率達到0.972,說明支持向量機模型可更好地預測準流失客戶,能夠更精準地為餐飲企業鎖定客源損失目標。
對于本研究中的測試集而言,決策樹模型的總預測精確度為0.913,支持向量機模型的總預測精確率為0.951,支持向量機模型的精確率更高。由于測試集數據較多,僅展示了兩個模型對測試集中前10位客戶的流失狀態預測結果。其中,決策樹模型對4位非流失客戶只預測對1位,說明決策樹算法的模型穩定性較差。支持向量機模型對6位準流失客戶預測正確5位,對于4位非流失客戶全部預測正確,說明支持向量機模型的穩定性較好,可認為支持向量機模型更適用于客戶的流失預測。詳見表5。

表5 兩種模型對測試集前10位客戶流失狀態的預測結果Tab.5 Predicted results of the two models for the loss situation of first 10 customers in the test set