誰會簽約?以「精準行銷模型」評估顧客帶來的預期獲利
(附Python程式)
啊? 簽約?都是B2B阿? 要用精準行銷技法?
- 手機合約:現今人人皆有手機,而我們通常會與電信供應商簽訂個人化契約,獲取如499、699網路吃到飽套餐等服務。
- 信用卡合約:「任刷1筆帳單,即享5%現金回饋,刷滿10筆,即享10%現金回饋!」類似的廣告都無所不在的存在於我們每日的生活中,相信只要是在職者,有1到2張的信用卡都不為過,而擁有信用的前提,同樣也是要完成個人化契約的簽訂。
- 線上合約:嗯? 線上合約? 如果您是雲端使用者,一定在熟悉不過如github、線上課程、防毒軟體等付費軟體,皆是個人化契約的常見範例。
- 簽約客戶數以億計,誰會解約? 誰會續約?
舉例來說:github公司擁數以億計的顧客,每個人可能都因為該公司的服務狀況而放棄合約。每個月都會有數千萬的客戶合約到期,這些到期的客戶中,到底誰會解約? 又要如何預防解約? - 是廣告投放,還是隨意濫發?
雖然網路雲端服務商大量投放廣告(例如:優惠券)的成本相對於實體商店來說,成本根本相對低廉,但是到底要選擇「精準投放」? 還是「隨意投放」給簽約客戶? 這都是一門重要的學問。 - 機器學習做完,然後呢?
多數資料科學家對於機器學習技法早就駕輕就熟,但是多數結果評估出來僅是給老闆準確率,尚缺乏實質的「期望獲利」等金錢指標。
本次筆者一樣使用「相對廉價(5萬元)」的電腦,為讀者輕鬆實踐「Python機器學習 —精準行銷評估顧客帶來的預期獲利」方法。
Python機器學習 — 評估顧客帶來的預期獲利 Go !
- 產品:A公司主打的線上服務P產品
- 通路:100%的網路媒介
- 價格:$ 5,000元新台幣
- 成本:$ 884元新台幣
- 行銷文宣成本:$ 500元新台幣 / 每位顧客
- 銷售:A公司提供30天的免費線上服務 — P產品,期望期限內顧客能正式簽約購買P產品之服務
- 資料蒐集:目前已經有蒐集個別天數的每一消費者是否對P產品的實際購買狀況(購買 = 1;無購買 = 0),本次提供的為10,000位顧客使用第7天時購買狀況之資料集,詳見圖1
- 面對難題:
- 每隔1–2天便對數以萬計的顧客發送電子行銷文宣,不但購買率低下,甚至造成諸多客訴
- 顧客之預期獲利以人工經驗評估之,沒有量化或模型工具之協助,不曉得到底應該使用廣告全投放還是機器學習模型來做投放?
- 不甚清楚客戶對哪個欄位特徵感興趣,讓A公司可以使力在該特徵欄位
- 產品使用分數 — 依據A公司估算每位顧客每天於產品使用上的流暢程度
- 使用者地區 — 總共有台北、台中與台南共三個地區之資料
- 性別 — 男、女之類別變數
- 年齡 — 使用者年齡
- 使用累計時間 — 使用者使用A公司任一產品時間
- 點數餘額 — 使用者對A公司產品總點數餘額
- 產品服務使用量 — 使用者每天產品使用程度
- 是否使用信用卡付月費 — 使用者支付方式是否為信用卡
- 是否為活躍用戶 — 使用者在A公司的評估中,是否為活躍使用者
- 估計薪資 — 使用者在A公司的評估中,所估計的可用薪

圖1. 分析資料表一覽
不購買比例 79.63 % of the dataset
購買比例 20.37 % of the dataset

圖2. 本為不平衡資料集(imbalanced dataset)之型態

圖3. One-Hot Encoding後的資料集

圖4. 三種樹狀模型的ROC曲線比較
所以… 分類模型的準確率就是一切嗎? 這麼簡單!?
所以行銷資料科學有一重要的部分即是要恰當的評估建模需求,因此行銷資料科學家應該要仔細考慮模型的實際應用方式,並擬定相應的度量指標。舉例來說:
- 從不同評估指標中以成本及營收作考量,找出預期獲利最大的模型,這樣對於商業才真正有用武之地
- 使用不同取樣技術(Sampling technique),將不平衡資料集進行調整,找出獲利最大獲之模型
- 利用20/80法則,找出分類上最適當的獲利曲線
- 召回率(Recall) — 成本低廉的線上商業活動建議使用
代表的是在實際會買的顧客中,真正會買的顧客有多少比例。該指標我們會應用在線上簽約、買賣、服務等效益評估,因為當我們要求Recall高的時候,犧牲的通常是Precision,相較造成「假的正/買(FP):錯誤預測會買的人」數量衝高,不過線上(online)投放廣告成本相對線下(offline)低廉,所以行銷資料科學家能透過模型增益「真的正/買(TP)」,但犧牲「FP」,來達成效益最大化之目標! 這件事背後所代表的管理意涵是「在網路行銷成本成本相對低廉的狀況下,哪怕錯誤預測會買的人多(FP多),我寧願多投放給可能購買的人(TP高+FP高),因為只要有多一個人買,我網路行銷成本相對來說就賺回來不少了!」 - 精確率(Precision) — 成本高昂的線下商業活動建議使用
代表的是在預測會買的顧客中,真正會買的顧客有多少比例。該指標則會應用在線下活動、保安等寧可精準也不可濫投的高成本及高報酬商業活動,因為當我們要求Precision高的時候,犧牲的通常是Recall,相較下會造成「假的負/不買(FN):錯誤預測不買的人」數量衝高,所以當我們舉辦行銷成本非常高昂的活動時,瞄準的一定是高消費顧客,方足以支應行銷成本,所以行銷資料科學家能透過模型找出精準「真的正/買(TP)」(在不平衡資料集下,要求更精確的Precision,TP數量相對會更少),但犧牲「FN」,來達成效益最大化之目標! 這件事背後所代表的管理意涵是「在線下活動高昂成本的基礎下,哪怕真正會買的人(TP較少)相對較少,且錯誤預測不買的人多(FN多),我寧願高成本投放給更精確會購買的人(TP中等+FP非常低),因為只要一個人進行大筆的消費,行銷成本便能因大筆的消費金額中快速賺回!」
雖然可以針對不同的商業目與兩種指標來挑選適合的模型,不過我們通常還是會要求兩者之間需要在至少0.4或0.5以上進行平衡,否則將等於該模型沒有正常的預測效力。

圖5. 混淆矩陣表
請見文末對應程式碼:precision_recall_case.py


圖7. ROC曲線與Precision-Recall Curve

圖8. 模擬之混淆矩陣
講解了許多機器學習成效的評估觀念,接著就讓我們將Precision-Recall Curve應用本文案例吧!
請見文末對應程式碼:contract_one.py
隨機森林(Random Forest)
首先登場的是隨機森林,從圖9我們可看到其測試資料集準確率為87%。Precision-Recall Curve的表現也相當不錯(precision = 0.76;recall = 0.52;非常符合precision與recall 至少0.5以上的標準),建議可作為預期獲利的候選模型之一。

圖9. 隨機森林的ROC曲線與Precision-Recall Curve

eXtreme Gradient Boosting(XGBoost)
其次登場的是XGBoost,從圖10我們可看到其測試資料集準確率為88.5%。Precision-Recall Curve的表現也相當不錯(precision = 0.74;recall = 0.53;非常符合precision與recall 至少0.5以上的標準),建議可作為預期獲利的候選模型之一。

圖10. XGB的ROC曲線與Precision-Recall Curve

Light Gradient Boosting(LGBM)
最後登場的是LGBM,從圖11我們可看到其測試資料集準確率為84.7%。Precision-Recall Curve的表現也相對較差(precision = 0.66;recall = 0.51;符合precision與recall 至少0.5以上的標準),同樣建議可作為預期獲利的候選模型之一。

圖11. LGBM的ROC曲線與Precision-Recall Curve

那… 那… 這些模型,應該如何與預期獲利結合?
闡述了這麼久,建模也完成了,終於來到要與預期獲利結合的單元了!不過在進行預期獲利部份計算前,我們還要先了解計算時應考量的兩個因素:


混淆矩陣表
- Profit(p ̂, P)
此種情況為獲得廣告訊息且願意購買的顧客,代表企業獲利為$3,616元/每位顧客 - Cost(p ̂, N)
代表我們寄送了廣告訊息,但是顧客沒有回應,所以這筆固定花費為$500元/每位顧客 - Cost(n ̂, P)
代表該群顧客被預測不會購買,但是實際狀況是會購買的,這種情況下,我們沒花任何錢,顧客也沒有任何購買行為發生,所以為$0 - Profit(n ̂, N)
代表我們不發給這群顧客廣告訊息,實際上他們也不會產生購買行為,所以無獲利,同時也沒有成本$0

圖12. 成本效益矩陣
接下來,我們將預期獲利的機率與成本效益矩陣進行結合,產生「預期獲利機率模型方程式」,得出各自期望值的方程式如下圖13:

圖13. 預期獲利機率模型方程式

- 第一行就是【在全市場中,客戶真實會購買的預期獲利】
另一種機率觀的解釋方式為,該位客戶在會購買的事件發生下,我們投遞廣告給該客戶後,該客戶購買該產品事件又同時發生所產生的期望獲利及成本 - 第二行【在全市場中,客戶真實不會購買的預期獲利】
另一種機率觀的解釋方式為,該位客戶在不會購買的事件發生下,我們不投遞廣告給該客戶,該客戶不購買該產品事件又同時發生所產生的期望獲利及成本

圖14. 分解後之預期獲利機率模型


XGBoost期望獲利 = $366.85;代表我們使用XGBoost投放給被模型分類會購買的客戶,我們就能預期獲平均每位客戶$366.85元的獲利




- 線上活動因為行銷成本相對低廉,尤其是在自家平台進行廣告活動,所以recall越高,對線上活動的獲利確實越好
- 以準確度來說,Random Forest最高,但是以獲利來說,卻是XGBoost的獲利情況較佳,所以證實在商業利益的考量下,準確度不一定是唯一的標準,反倒要依照商業目的的不同(線上或線下活動? 獲利指標?)來挑選最適當的模型

表1. 獲利總結表
上述案例提及老版因閱讀過2009年哈佛商業評論一篇短文 — 「棄權」領導學,所以大膽放權給員工們進行分析,不過在進行資料分析的同時,我們也應該參考大師們對於經理人與資料共舞的建議,如同湯瑪斯・戴文波特(Thomas H. Davenport)在哈佛商評中2018年的一篇文章 — 經理人應該如何運用數據資料所道:「經理人的職責是為分析師設定適當的參數,並以具說服力的方式,傳達他們發現的結果」,對應到本文來說,本案例的老闆不應該這麼容易「見獵心喜」,反而應該給予資料科學團隊設定適當的參數,也就是「對企業有益的目標 — 預期獲利」,透過最終的預期獲利,資料科學家們便更能以企業家的角度思考,找出真正獲利的模型,為企業創造更大的獲利。
管理者到底是要進行廣告全投放? 還是使用機器學習模型的結果? 一般資料科學團隊都會強調使用機器學習模型的結果就對了,但實際上這樣可能不是獲利最大的方式,我們必須要在投放廣告前,事先以不同模型及全投放的預期獲利進行評估,如果模型結果獲利大於全投放的結果,那我們就可以採行模型的結果,但如果行銷成本很低,舉例來說:在表2,我們的行銷成本僅有$ 5元/每人,其實可以發現進行「全市場廣告投放」相對賺得多;但在表3,我們的行銷成本如有$ 500元/每人,反倒「使用模型」相對賺得多。
這告訴我們如果能將「對每一個客戶的行銷成本」降低至某一程度,經不同模型的演算及全投放的比較,我們將很可能不需要機器模型,即能獲取利益最大化!

表2. 行銷成本僅5元/每人的狀況下

表3. 行銷成本500元/每人的狀況下
【怎樣挑選線上與線下商業活動的模型指標?】

表4. 行銷成本100元/每人的狀況,且在Recall不同的狀況下

表5. 行銷成本15,000元/每人的狀況,且在Precision不同的狀況下
作者:鍾皓軒(臺灣行銷研究有限公司 創辦人)