Chapter 05 選擇目標市場程式實作

一、以「精準行銷模型」評估預期獲利–模型評估指標的意涵

 現在幾乎每個人都有手機,且均與電信公司簽下399、499、699「網路吃到飽」的套餐服務;或與銀行簽訂每刷1筆帳單,即可享有3%現金回饋專案,每刷滿10筆,即享10%現金回饋的信用卡「個人化」契約;如果是雲端使用者,也可能向Github、線上課程公司、防毒軟體公司等,付費購買線上服務。

無論是電信公司、發卡銀行或雲端服務商,這些大型企業擁有數百萬、千萬,甚至是億計的會員消費者,每天可能都有客戶合約到期;但您有沒有想過,在到期客戶中,哪些人會留下來?哪些人又會解約,轉投靠競爭者的陣營?爭取一個新客戶其實很不容易,企業又該如何預防他們解約?此外,企業在網路上投放廣告,儘管它們的成本,要比實體投放低很多,但是,怎麼樣可以「精準投放」,而非像過去一樣做「地毯地轟炸」,對現在處處講究撙節成本的企業,一定是重要課題。

畢竟,如果每隔幾天,就得對數以萬計的消費者發送電子行銷文宣,不但轉換率、購買率低,可能還會造成消費者的強烈反感,甚至導致客訴案件直線上升。同時,要評估接收到文宣的這些消費者,最後會為公司帶來多少獲利,過去大都是憑經驗和直覺,在沒有量化或模型工具的協助下,往往導致廣告投放效益不彰。

現在,拜「機器學習」之賜,電腦已能夠協助我們解決這些問題。以下,就以真實的線上服務商之零售資料進行分析,並以Python 3 進行「評估顧客帶來的預期獲利」的機器學習實戰。

主題如下:

  1. 產品:A公司主打的線上服務P產品。
  2. 通路:100%的網路媒體。
  3. 價格:$ 5,000元新台幣。
  4. 成本:$ 884元新台幣。
  5. 行銷成本(內含行銷人員的人事成本):$ 500元新台幣 / 每位顧客。
  6. 銷售:A公司先行提供30天的免費線上服務 — P產品,期望期限內顧客能正式簽約購買P產品之服務。
  7. 資料蒐集:目前已經有蒐集個別天數的每一消費者是否對P產品的實際購買狀況(購買 = 1;無購買 = 0),這裡提供的是10,000位顧客使用第7天時購買狀況之資料集,如圖1.所示。

圖1. 分析資料表一覽

此次,以A公司同意情境下,真實線上零售資料為基準展開實做,並將所有的敏感變數加以移除、屏蔽和更換,進行資料預處理。

機器學習演算法主要以 Random Forest(RF)、XGBoost(XGB)、LightGBM(LGBM)進行分析預測,原因在於樹狀模型建模容易、解釋容易且較其他模型來說精準度更高。至於,損失函數部份則使用分類常用的Log-Loss(Cross-entropy loss)進行分類損失函數數值評估。以下簡述資料集裡的欄位。

目標變數(或稱依變數):

購買與否:每一客戶對P商品的購買狀態,購買=1;不購買 = 0。

標籤(或稱自變數):

  1. 產品使用分數 — 依據A公司估算,每位顧客每天使用產品的流暢程度。
  2. 使用者所在地區 — 台北、台中與台南三個地區之資料。
  3. 性別 — 男、女類別變數。
  4. 年齡 — 使用者年齡。
  5. 使用累計時間 — 使用者使用A公司任一產品的時間。
  6. 點數餘額 — 使用者對A公司產品總點數餘額。
  7. 產品服務使用量 — 使用者每天產品使用程度。
  8. 是否使用信用卡支付月費 — 使用者支付方式是否為信用卡。
  9. 是否為活躍用戶 — 使用者在A公司的評估中,是否為活躍使用者。
  10. 估計薪資 — 使用者在A公司的評估中,所估計的可用所得。

接著進行初步分析,發現這10,000筆資料中,購買者與不購買者呈現20/80的比例分佈(如圖2.所示,購買比例20.37 %;不購買比例79.63 %。),此為「不平衡資料集(imbalanced dataset)」。不過,先不考慮不平衡資料集所可能造成的問題,直接以三種演算法進行預測性建模。

圖2.購買者與不購買者呈現不平衡資料集之型態

首先,先對類別變數─地區及性別,進行資料預處理,透過獨熱編碼(One-Hot Encoding)(如圖3.所示),將資料轉換為下述的資料型態:

圖3.獨熱編碼後的資料集

接著,透過Random Forest(RF)、XGBoost(XGB)、LightGBM(LGBM)三種演算法進行建模,並比較三者的ROC曲線AUC分數及測試資料集的準確度(Test Accuracy)(如圖4.所示)。結果可發現,RF的準確度(Test Accuracy)為0.87,屬於最高值,因此決定以RF做為最適當的評估模型。

圖4. 三種樹狀模型的ROC曲線比較

從技術上來看,準確率(Test Accuracy)是評估不同模型的最佳指標,不過,當準確率遇上不平衡資料集,或是不同的商業情境(如數位行銷或實體行銷)時,就不能一味地相信準確率這項指標。此時,企業的行銷資料科學家應充分了解建模的需求,並擬定相對應的衡量指標。

以下以混淆矩陣(Confusion matrix)的兩種概念:精確率(Precision)與召回率(Recall)與(如圖5.所示)來進行說明。

圖5. 混淆矩陣表

1.精確率(Precision) — 建議使用於 高成本的實體行銷活動

精確率的定義,是指「在預測會買的顧客中,預測到會買且實際會買的顧客」。這一項指標,通常應用在「寧可精準也不濫投」的高成本、高報酬的商業活動。一旦我們要求高精確率,通常會犧牲召回率,所以碰到舉辦行銷成本非常高的活動時,瞄準的一定是高消費客群,而且要精準命中,才足以支應行銷成本。

這也意味在實體行銷活動高昂的成本基礎下,哪怕預測到會買且實際會買的顧客相對較少(True Positive, TP較少),且錯誤預測不買的人多(False Negative,FN多),此時,寧可多投放給精確且會購買的人(TP中等+FP非常低),因為其中只要有一名顧客大筆消費,企業便能因大筆的消費金額中,快速賺回行銷費用。

在這種情況下,行銷資料科學家能透過模型找出精準「TP」,但犧牲「FN」,來達成效益最大化之目標。

2.召回率(Recall) — 建議使用於低 成本的數位行銷活動

召回率是指「在實際會買的顧客中,預測到會買且實際會買的顧客」。此項指標適用於低成本、需要大量名單的數位行銷活動。當我們要求召回率高,通常會犧牲精確率,但也因為在網路行銷成本相對低廉的狀況下,哪怕錯誤預測會買的人多(FP多),但寧願多投放給可能購買的人(TP高+FP高),因為只要多一個人購買,企業就多一份進帳,就能輕易負擔額外增加的網路行銷成本。因此行銷資料科學家能透過模型,增加「真的正/買(TP)」,但犧牲「FP」,來達成效益最大化。

在商業上,最希望看到的就是「精確率」與「召回率」這兩個比例,都可以趨近於1。雖然可以針對不同的商業目的與兩種指標來挑選適合的模型,不過,通常還是要求兩者之間至少都在0.4或0.5以上進行平衡,否則模型就未達正常的預測效力。

此外,針對於精確率(Precision)與召回率(Recall)我們會使用所謂的「PR 曲線(Precision-Recall Curve)」了解分類器在商業應用上的好壞。

以下隨機取一99%不購買,僅有1%購買的不平衡資料集(如圖6所示)來進行測試。

請見文末對應程式碼:precision_recall_case.py

圖6、使用模擬資料集來測測Precision-Recall Curve

對其進行KNN的簡單分類,從圖7.右方中可以發現,其實ROC曲線的分數還不錯,AUC分數可以達到77%,測試資料集的準確度(Test Accuracy)更達96%。如果僅看ROC曲線,很容易發現這似乎是一個不錯的分類器,但如果看PR 曲線(圖7左方),則效果不佳,當精確率(Precision)為50%時,召回率(Recall)僅有11%。

圖7. Precision-Recall Curve與 ROC曲線

由圖8.中,我們可以看到,使用該分類器結果進行廣告投放,結果僅建議投放4人,而有2人會購買。但是,如果「損益兩平點」在7人以上,這一個模型絕對會遭到捨棄。儘管此時,剛入門的行銷資料科學家可能因為準確率而建議公司使用這個分類器,但從圖8.的獲利表現中,就知道這次投放廣告要虧大了。因此,這就是我們為什麼要強調精確率與召回率,至少要在0.5以上的原因了。

圖8. 模擬之混淆矩陣

STP行銷策略 | 網路爬蟲x機器學習x數據分析

作者:鍾皓軒,羅凱陽,蘇宇暉
出版社:碁峰
出版日期:2020/09/16
語言:繁體中文
定價:520元

作者:鍾皓軒,羅凱陽,蘇宇暉
出版社:碁峰
出版日期:2020/09/16
語言:繁體中文
定價:520元

回到頂端