一家歐洲銀行每年撥出4萬通營銷電話,轉化率7.24%。這意味著每打100通電話,92個客戶被白白打擾。Rinal Patel接手這個項目時,數據比故事更刺眼:37,104次通話徹底浪費,客戶 annoyed,員工疲憊,預算燒完。
Patel當時在Apziva做AI Resident。他沒急著調參,先問了一個產品經理式的問題:這不是預測問題,是篩選問題。關鍵不是"怎么打更多電話",而是"打給誰"。
數據集很干凈:4萬條客戶記錄,14個維度,從年齡、職業到賬戶余額、貸款歷史。標簽只有一個——是否購買定期存款。但數據分布極其畸形:92.76%拒絕,7.24%接受。這叫類別不平衡(class imbalance),新手容易把它當技術bug修,Patel把它當商業信號讀。
「如果模型對所有客戶都預測'不買',準確率92%,但毫無價值。」他在復盤里寫道。這個細節決定了整個項目的技術路線:準確率是虛榮指標,召回率(recall)才是真金白銀。
三個模型,三種問法
多數ML項目建一個模型交差。Patel建了三個,因為營銷團隊真正想問的是三個不同問題。
模型一:理論天花板
先用全部14個特征跑基準測試。隨機森林、XGBoost、GBM、LightGBM、CatBoost輪番上陣。XGBoost召回率沖到78.05%,看起來很美。
但特征重要性一出來,Patel愣住了:通話時長(call duration)一騎絕塵,貢獻度碾壓其他所有變量總和。
問題是——你撥號之前怎么知道這通電話能打多久?客戶接起來就掛,還是聊半小時,這是結果不是輸入。這個模型在測試集上漂亮,在生產環境完全無法部署。第一個教訓:最好的模型不一定是最有用的模型。
模型二:實戰預測器
拿掉通話時長,重新訓練。現在問題變尖銳了:撥號之前,我們能知道什么?
賬戶余額(account balance)躍升為最強預測因子,其次是最近聯系天數(days since last contact)、客戶年齡、以及之前營銷活動的響應歷史。XGBoost召回率掉到76.19%,但這是一個能真正上線的模型。
營銷團隊拿到的是一份"優先呼叫清單":余額高、近期被聯系過、歷史響應好的客戶排在前面。低余額、長期無互動、從未響應的客戶暫時跳過。
模型三:成本敏感版
銀行有隱藏成本:錯把潛在客戶標成"不買"(假陰性),比錯把非客戶標成"買"(假陽性)貴得多。前者是丟錢,后者是浪費電話費。
Patel引入代價敏感學習(cost-sensitive learning),給兩類錯誤賦予不同權重。調整后的模型更"激進"地標記潛在客戶,召回率進一步提升,精確率(precision)略有犧牲,但綜合業務收益更優。
從78%到92%:數字背后的操作細節
最終部署的是模型二和模型三的融合策略。關鍵指標變化如下:
? 召回率:從隨機撥打的7.24% → 模型篩選后的92%+(識別潛在客戶的能力)
? wasted calls:從37,104通/年 → 約7,400通/年(減少80%)
? 轉化率:絕對值提升,且單位通話成本大幅下降
但Patel在復盤里埋了一個更關鍵的洞察:模型不是替人做決定,是幫人問對問題。
營銷團隊過去的問題是"這通電話要不要打",現在變成"這通電話怎么打"。高潛力客戶清單在手,銷售話術、撥打時機、跟進策略都可以差異化。模型解決的是篩選效率,但轉化率的真正躍升來自后續環節的配合。
四個踩坑記錄
Patel在Medium長文里列了四條實戰教訓,比技術細節更值得讀:
1. 數據泄露是隱形殺手
通話時長那個坑,本質是訓練特征包含了未來信息(future information)。這類錯誤在Kaggle比賽里不會出現,因為比賽數據是靜態的;在真實業務里隨處可見,因為業務數據是流動的。他的排查方法是:逐個問每個特征——"這個信息在預測時刻已知嗎?"
2. 業務指標 ≠ 技術指標
準確率92%的"垃圾模型"和召回率76%的"可用模型",選哪個?技術人容易沉迷F1-score,但銀行只關心"少打多少無效電話"和"多賺多少存款"。Patel的做法是:用混淆矩陣算業務賬,把模型輸出翻譯成營銷團隊能懂的"每月節省XX工時"。
3. 類別不平衡不是技術債
92.76%的拒絕率不是噪聲,是信號。它說明銀行的產品定位、客戶篩選、觸達策略本身就有問題。模型能做的是在現有客戶池里淘金,但真正的杠桿在更上游:為什么這么多人不感興趣?Patel建議把模型輸出反向輸入給產品團隊,識別"看起來該買但預測不買"的異常群體,可能是定價或溝通方式的問題。
4. 可解釋性比精度更重要
XGBoost是黑盒,但營銷經理需要知道"為什么這個人排第一"。Patel用SHAP值(SHapley Additive exPlanations,一種特征貢獻度解釋方法)拆解每個預測,輸出"該客戶高潛力的三個原因"。這讓模型從"系統建議"變成"決策參考", adoption rate 大幅提升。
一個反直覺的后續
項目上線半年后,Patel回訪數據。發現一件意料之外的事:被模型標記為"低潛力"的客戶群體,轉化率確實極低,但其中有一小撮人在6-12個月后主動來電購買。
深挖發現,這群人的共同特征是"近期有大額資金流入"——模型用的賬戶余額是月度快照,沒捕捉到資金流動的時間維度。這個發現催生了第二個項目:實時余額變動觸發式營銷。
「模型不是終點,是起點。」Patel寫道。第一個模型省下了80%的 wasted calls,但真正的價值是它暴露了什么數據沒有、什么問題沒問。
這個案例在Kaggle的Bank Marketing數據集上有公開實現,但Patel強調:同樣的算法,不同的問法,結果天差地別。技術棧是XGBoost+Python+SHAP,但核心能力是"把業務問題翻譯成可驗證的假設"。
對于想復現的讀者,他的建議是:先花80%時間理解"為什么打這通電話",再花20%時間調參。數據科學項目的失敗,很少因為算法不夠先進,多數因為解決的問題不夠準確。
最后留一個問題:你的公司有沒有在跑"準確率92%但完全沒用"的模型?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.