讓機器學習分析影響公司營收的「關鍵變數」
(附 Python 程式)
我們在精準行銷模型 – 系列 1 的文章 — 誰會簽約?以「精準行銷模型」評估顧客帶來的預期獲利(附Python程式)講述:
- 準確度不代表獲利
- 機器學習在線上/線下商業活動的指標選擇
- 廣告全投放與機器學習投放之差別
- 管理上,管理者對權力掌控的有利程度
其不同面向在機器學習不同商業應用上的概念,而這一次,我們將延續系列 1 的精神,探討機器學習能達到精準預測外,還能夠透過數據給人類何種有意義的訊息?
要求機器學習能獲利即可,還要大費周章找「重要變數」?
原因其實很簡單,讀者可以想想,如果我們是一家電商的老闆,且已經成功以機器學習模型在商業獲利上能精準預測到似系列 1 中消費者的購買機率,接著,一很直觀性的疑問便油然而生:「嗯! 能精準預測了! 但… 我要怎樣做才能讓更多消費者來購買呢?」
這句疑問的言下之意即是,「影響消費者購買的關鍵變數到底為何? 」,這代表著如果我們能得知「消費者購買的關鍵變數」,身為人類,我們就可以盡一切可能,優化及精進這些關鍵變數,使消費者的購買機率提高,為企業創造更多營利的可能性。
除此之外,找出重要變數還有至少以下 3 種商業應用上的優點:
- 推出新線上服務之參考
- 深度訪談這些擁有重要變數的客戶,舉例來說:年齡可能是重要的變數,那該群顧客還會有何種線上服務的需求?年齡層高與低的顧客未來分別有何種需求等。
- 驗證本次主打的商品有沒有打中預想的重要變數
等等… 皆可讓管理者知曉未來改善的標的。
Python機器學習 — 分析影響公司營收的關鍵變數 Go !
簡單講解過關鍵變數的應用後,接著,我們要深入行銷資料科學的「資料科學」領域,使用一真實線上服務商之服務流程資料進行分析,並以 Python 3 機器學習進行「關鍵變數」選擇!
情境主題:
繼上次解決系列 1 的難題後,我們再次使用 P 產品的相關資料來進行「關鍵變數」之選擇
- 產品:A 公司主打的線上服務 P 產品
- 通路:100% 的網路媒介
- 行銷文宣成本:$ 300 元新台幣 / 每位顧客
- 銷售:A 公司提供 30 天的免費線上服務 — P 產品,期望期限內顧客能正式簽約購買 P 產品之服務
- 資料蒐集:購買 = 1;無購買 = 0,提供的為 10,000 位顧客使用第 7 天時購買狀況之資料集
- 「關鍵變數」上所面對難題:不甚清楚客戶對哪個欄位變數感興趣,讓 A 公司可以注意該重要變數
變數
- prod_output_num : 產品結果輸出次數
- locations : 使用者地區
- gender : 性別
- age : 年齡
- click_on_prod : 產品點擊次數
- balance : 點數餘額
- registry_to_use_time : 產品註冊到使用的時間
- credit_card_paid : 是否使用信用卡付月費
- active_member : 是否為活躍用戶
- estimated_salary : 估計薪資
目標變數(或稱依變數):
buy:購買與否,代表每一客戶對 P 商品的購買狀態,這是我們要預測的變數,購買 = 1;不購買 = 0(圖 1)
機器學習「關鍵變數選擇」:
機器學習建模前,老樣子我們一樣先將類別變數 — 地區及性別進行 One-Hot Encoding(見圖 2),轉換為下述資料型態(圖 2):
如欲知 One-Hot Encoding 的概念,請見本提問回覆
依照系列 1 的建議,XGBoost 對於預期獲利來說,為最適當的模型,因此我們將 XGBoost 當作我們「關鍵變數」的篩選模型。
變數重要性長條圖
首先就讓我們看一下模型預測結果與關鍵變數表(圖 3)
再來我們將之圖像化,就可以到系列 1 中詳細介紹的 confusion matrix,進而算出 86.8% 的準確率(圖 4):
再來看到本次文章的主角 — 「變數重要性長條圖」的結果(圖 5):
從圖 5 中,我們分別可以看到,從 XGBoost 中所判別出來的 balance(點數餘額)、estimated salary(預估薪資)、prod_output_num (產品結果輸出次數)、age(年齡)與 registry_to_use_time (產品註冊到使用的時間)為預測「消費者是否會購買」的五大關鍵變數!
然後呢? 讀者這時候可以想一想,既然我知道這幾樣為重要性的變數,那接下來我應該要「加強還是降低」這些關鍵變數? 應該如何知曉這些關鍵變數對「消費者是否購買」的關係?
係數長條圖
這時候係數長條圖(圖 6)就派上用場啦!係數長條圖是由羅吉斯迴歸(logistic regression)以線性分類推估所得,圖 6 一方面可以很清楚的告訴管理者關鍵變數應當加強或減弱外,另一方亦可推估加強或減弱後的效果為何。
那應該如何評估關鍵變數加強或減弱的效果呢?這時候我們便會用到羅吉斯回歸評估係數中,常使用的 Odds ratio(圖 7),藉以評估在考量不同 X 變數下,會購買的消費者(Y = 1)相對於不會購買的消費者(Y = 0)來說,該 X 變數的影響程度。
Well… 還是不清楚嗎?沒關係!讓我們直接由結論來理解!從圖 8 中,可以看出各種關鍵變數對於「購買與否」的重要關係,舉例來說:registry_to_use_time(產品註冊到使用的時間)背後所代表的意涵為,如果該服務註冊流程到產品使用的時間過長(代表註冊程序複雜或填表多),則總體來說,消費者的購買意願便會下降 0.863 倍,這其中的管理意涵則為,管理者可依據本分析結果,進而與技術及行銷部開會,想辦法簡化註冊流程,降低產品註冊到使用的時間,試圖提昇購買意願。
讓我們再舉另一例子來看,增加 prod_output_num (產品結果輸出次數),竟然造成購買倍數的下降?!結果發現,這是因為消費者不熟悉該產品操作,所以消費者便嘗試輸出錯誤的結果,在經過使用者訪談後,發現原來是產品使用上稍為複雜,導致消費者需要經過非常多次的輸出,才有辦法輸出正確的可交付成果,因此管理者可以與消費者及產品開發者們分別討論如何對產品輸出流程進行簡化作業,讓消費者在輸出可交付成果時,擁有更好的體驗(圖8)。
那真的有效果?讓我們來實測看看!
實測中,我們測試了數十位消費者,就讓我們找出某一意願低下的 A 消費者當作案例代表,A 對該產品的使用狀況如下(圖 9、圖 10):
- prod_output_num(產品結果輸出次數)為 551 次
- registry_to_use_time(產品註冊到使用的時間)為 2 單位的時間
- 我們預估其購買機率為 8%
接著,A 公司對 P 產品的界面及註冊流程進行了更 User-friendly 的改造,對其進行再次測試,經訪談,該位消費者即非常有意願購買該產品;數據的結果(
圖 11、圖 12)則是:
- prod_output_num(產品結果輸出次數)為 373 次,減少 178 次
- registry_to_use_time(產品註冊到使用的時間)為 1 單位的時間
- 我們預估其購買機率增長到 70%
由此可知,在產品輸出程序與註冊時間雙管齊下的改善下,確實有增加消費者們購買機率的可能性!
管理意涵:
- 管理者可針對關鍵變數進行決策,找出消費者痛點
該 A 產品功能多樣,要找出消費者痛點實屬不易,更遑論這些痛點很有可能不是在產品本身,而是在一開始未使用 A 產品時所遭遇的產品使用前之程序,如:註冊程序、註冊時間、網頁停留時間數等,管理者都應當充分使用機器學習技術,查看會影響到消費者購買意願之「關鍵變數」,以利提高購買機率之可能性。 - 關鍵變數改善?不改善?
從本案中可看到我們並未主打改善 balance(點數餘額)與 estimated salary(預估薪資),其考量因素主要在於管理者在改變這些變數執行上的難易度,經過評估,進行 prod_output_num 與 registry_to_use_time 相對來說於公司產品使用經驗上能得到更多的改善,更重要的是公司能從中節省更多成本,獲取更多利益,而這些決策,即是考驗管理者與專業經理人的策略性思考能力。
本文程式碼:
作者:鍾皓軒(臺灣行銷研究有限公司 創辦人)
更多實戰案例及情境好文推薦
零售產業如何透過XGBoost解決實體店面庫存問題?
零售產業如何透過XGBoost解決實體店面庫存問題? Photo by: Nathália Rosa 情境 許多超商門店面對「庫存」與「銷售
用Python機器學習步步打造「自己的客戶精準名單」(附Python程式碼)
用 Python 機器學習步步打造「自己的客戶精準名單」(附 Python 程式碼) 談到精準名單,您會想到什麼? 當我們談到精準名單時,我
透過資料視覺化,找出成為Youtube發燒影片的關鍵
透過資料視覺化,找出成為Youtube發燒影片的關鍵 情境 社群行銷一直是企業吸引市場目光或是培養客戶關係的熱門管道,而較受歡迎的社群平台從