讓機器學習分析影響公司營收的「關鍵變數」(附Python程式)

我們在精準行銷模型-系列1的文章 — 誰會簽約?以「精準行銷模型」評估顧客帶來的預期獲利(附Python程式)講述:

  1. 準確度不代表獲利
  2. 機器學習在線上/線下商業活動的指標選擇
  3. 廣告全投放與機器學習投放之差別
  4. 管理上,管理者對權力掌控的有利程度

其不同面向在機器學習不同商業應用上的概念,而這一次,我們將延續系列1的精神,探討機器學習能達到精準預測外,還能夠透過數據給人類何種有意義的訊息?

要求機器學習能獲利即可,還要大費周章找「重要變數」?

原因其實很簡單,讀者可以想想,如果們我們是一家電商的老闆,且已經成功以機器學習模型在商業獲利上能精準預測到似系列1中,消費者的購買機率,接著,一很直觀性的疑問便油然而生:「嗯! 能精準預測了! 但… 我要怎樣做才能讓更多消費者來購買呢?」。

這句疑問的言下之意即是,「影響消費者購買的關鍵變數到底為何? 」,這代表著如果我們能得知「消費者購買的關鍵變數」,身為人類,我們就可以盡一切可能,優化及精進這些關鍵變數,使消費者的購買機率提高,為企業創造更多營利的可能性。

除此之外,找出重要變數還有至少以下3種商業應用上的優點:

  1. 推出新線上服務之參考
  2. 深度訪談這些擁有這重要變數的客戶,舉例來說:年齡可能是重要的變數,那該群顧客還會有何種線上服務的需求? 年齡層高與低的顧客未來分別有何種需求等?
  3. 驗證本次主打的商品有沒有打中預想的重要變數

等等… 皆可讓管理者知曉未來改善的標的。

laughing
呵呵~ 機器學習不僅能作到精準預測,還能幫我找出重要變數阿!真是一舉兩得!

Python機器學習 — 分析影響公司營收的關鍵變數Go !

簡單講解過關鍵變數的應用後,接著,我們要深入行銷資料科學的「資料科學」領域,使用一真實線上服務商之服務流程資料進行分析,並以Python 3 機器學習進行「關鍵變數」選擇!

情境主題:

既上次解決系列1的難題後,我們再次使用P產品的相關資料來進行「關鍵變數」之選擇

  1. 產品:A公司主打的線上服務P產品
  2. 通路:100%的網路媒介
  3. 行銷文宣成本:$ 300元新台幣 / 每位顧客
  4. 銷售:A公司提供30天的免費線上服務 — P產品,期望期限內顧客能正式簽約購買P產品之服務
  5. 資料蒐集:購買 = 1;無購買 = 0,提供的為10,000位顧客使用第7天時購買狀況之資料集
  6. 「關鍵變數」上所面對難題:
  • 不甚清楚客戶對哪個欄位變數感興趣,讓A公司可以使力在該重要變數

變數

  1. prod_output_num : 產品結果輸出次數
  2. locations : 使用者地區
  3. gender : 性別
  4. age : 年齡
  5. click_on_prod : 產品點擊次數
  6. balance : 點數餘額
  7. registry_to_use_time : 產品註冊到使用的時間
  8. credit_card_paid : 是否使用信用卡付月費
  9. active_member : 是否為活躍用戶
  10. estimated_salary : 估計薪資

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

buy:購買與否,代表每一客戶對P商品的購買狀態,這是我們要預測的變數,購買=1;不購買 = 0 (圖1)

資料分析表
圖1 、分析資料表一覽

機器學習「關鍵變數選擇」:

機器學習建模前,老樣子我們一樣先將類別變數 — 地區及性別進行 One-Hot Encoding(見圖2),轉換為下述資料型態(圖2):

如欲知 One-Hot Encoding 的概念,請見本提問回覆

資料集
圖2、One-Hot Encoding後的資料集

依照系列1的建議,XGBoost對於預期獲利來說,為最適當的模型,因此我們將XGBoost當作我們「關鍵變數」的篩選模型。

變數重要性長條圖

首先就讓我們先來看一下模型預測結果與關鍵變數表(圖3)

預測結果
圖3、預測結果與關鍵變數表

再來我們將之圖像化,就可以到系列1中詳細介紹的confusion matrix,進而算出86.8%的準確率(圖4):

XGB
圖4、XGB confusion matrix

再來看到本次文章的主角 — 「變數重要性長條圖」的結果(圖5):

變數重要性
圖5、變數重要性長條圖

從圖5中,我們分別可以看到,從XGBoost中所判別出來的 balance(點數餘額)、estimated salary(預估薪資)、prod_output_num (產品結果輸出次數)、age(年齡)與registry_to_use_time (產品註冊到使用的時間)為預測「消費者是否會購買」的五大關鍵變數!

然後呢? 讀者這時候可以想一想,既然我知道這幾樣為重要性的變數,那接下來我應該要「加強還是降低」這些關鍵變數? 那應該如何知曉這些關鍵變數對「消費者是否購買」的關係?

係數長條圖

這時候係數長條圖(圖6)就派上用場啦! 係數長條圖是由羅吉斯迴歸(logistic regression)以線性分類推估所得,圖6一方面可以很清楚的告訴管理者關鍵變數應當加強或減弱外,另一方亦可推估加強或減弱後的效果為何。

係數比較
圖6、係數長條圖

那應該如何評估關鍵變數加強或減弱的效果呢? 這時候我們便會使用到羅吉斯回歸評估係數時,常使用到的Odds ratio(圖7),藉以評估在考量不同X變數下,會購買消費者(Y=1)相對於不會購買的消費者(Y=0)來說,該X變數的影響程度。

Odds ratio
圖7、Odds ratio

Well… 還是不清楚嗎? 沒關係!讓我們直接由結論來理解!從圖8中,可以看出各種關鍵變數對於「購買與否」的重要關係,舉例來說:registry_to_use_time (產品註冊到使用的時間)背後所代表的意涵為,如果該服務註冊流程到產品使用的時間過長(代表註冊程序複雜或填表多),則總體來說,消費者的購買意願便會下降0.863倍,這其中的管理意涵則為,管理者可依據本分析結果,進而與技術及行銷部開會,想辦法簡化註冊流程,降低產品註冊到使用的時間,試圖提昇購買意願。

讓我們再舉另一例子來看,增加prod_output_num (產品結果輸出次數),竟然造成購買倍數的下降?! 結果發現,這是因為消費者不熟悉該產品操作,所以消費者變嘗試輸出錯誤的結果,在經過使用者訪談後,發現原來是產品使用上稍為複雜,導致消費者需要經過非常多次的輸出,才有辦法輸出正確的可交付成果,因此管理者可以與消費者及產品開發者們分別討論如何對產品輸出流程進行簡化作業,讓消費者在輸出可交付成果時,擁有更好的體驗(圖8)。

Odds ratio之管理意涵
圖8、Odds ratio之管理意涵

那真的有效果? 讓我們來實測看看!

實測中,我們測試了數10位消費者,就讓我們找出某一意願低下的A消費者當作案例代表,A對該產品的使用狀況如下(圖9、圖10):

消費者A產品使用狀況
圖9、A消費者產品使用狀況
購買機率評估
圖10、A消費者對產品的購買機率評估
  1. prod_output_num (產品結果輸出次數)為 551次
  2. registry_to_use_time (產品註冊到使用的時間)為 2 單位的時間
  3. 我們預估其購買機率為8%

接著,A公司對P產品的界面及註冊流程進行了更User-friendly的改造,對其進行再次測試,經訪談,該位消費者即非常有意願該購買產品;數據的結果(圖11、圖12)則是:

A消費者產品使用狀況
圖11、產品改良後,A消費者產品使用狀況
購買機率評估
圖12、產品改良後,A消費者對產品的購買機率評估
  1. prod_output_num (產品結果輸出次數)為 373次,減少178次
  2. registry_to_use_time (產品註冊到使用的時間)為 1 單位的時間
  3. 我們預估其購買機率增長到70%

由此可知,在產品輸出程序的與註冊時間雙管齊下的改善下,確實有增益消費者們購買機率的可能性!

管理意涵:

  1. 管理者可針對關鍵變數進行決策,找出消費者痛點
    該A產品功能多樣,要找出消費者痛點實屬不易,更遑論這些痛點很有可能不是在產品本身,而是在一開始未使用A產品時所遭遇的產品使用前之程序,如:註冊程序、註冊時間、網頁停留時間數等,管理者都應當充分使用機器學習技術,查看會影響到消費者購買意願之「關鍵變數」,以利提高購買機率之可能性。
  2. 關鍵變數改善? 不改善?
    從本案中可看到我們並未主打改善balance(點數餘額)與estimated salary(預估薪資),其考量因素主要在於管理者在於改變這些變數執行上的難易度,經過評估,進行prod_output_num與registry_to_use_time相對來說於公司產品使用經驗上能得到更多的改善,更重要的是公司能從中節省更多成本,獲取更多利益,而這些決策,即是考驗管理者/專業經理人的策略性思考能力。

本文程式碼:

作者:鍾皓軒(臺灣行銷研究有限公司 創辦人)

更多實戰案例及情境好文推薦

回到頂端