GAMMA Facet —用 BCG Gamma的開源人工智慧結晶分析臺灣金融業

source : BCG Gamma Github

隨著人工智慧逐漸滲透到各行各業,基於人為倫理、高度解釋的進階分析技術在商業應用與數位轉型的專案上變得非常關鍵。這時候一個可協助我們建立高度解釋模型、增強對於商業世界洞察的工具就至關重要了。對於解決企業複雜的商業顧問來說,面對這種新興科技問題可能就會與資料科學的專家們一起合作,建立人工智慧模型、數據治理架構等解決一系列數據相關的問題,這就好像BCG與BCG Gamma(BCG資料科學團隊)之間的關係。

source : https://www.bcg.com/zh-cn/beyond-consulting/bcg-gamma/default

BCG Gamma 是管理顧問公司BCG的資料科學團隊,GAMMA有兩層意思。第一層和理工科所說的Gamma ray代表的意義一樣。因為這些粒子可以穿透到宇宙中最黑暗的領域。它們不可阻擋,還能帶來光。這個比喻是說:資料科學可以讓我們走到企業、商業個體中最黑暗、最深不可測的地方 — — 資料庫(Data),並帶回商業見解(insight)

在這篇文中,我將會介紹並展示GAMMA Facet — 一套BCG Gamma開源(open source)的人工智慧建模工具,也是我最喜愛的Github專案(融合了商業分析與資料科學),並且用台灣股票市場的財報資料來示範如何透過這套高度可解釋性工具來做商業分析。透過這套工具可以幫助我們達到BCG Gamma的核心使命 —

Making AI real for business

推薦先花一分多鐘看以下影片了解BCG Gamma推出的Gamma Facet可以解決什麼問題、以及對商業的啟示,並接著往下閱讀:

source : https://www.youtube.com/watch?v=v8iu5zrATnU

人工智慧解決商業問題的良好工具

How to bring AI to business ?

讓我們來看看Github上對Gamma Facet的描述:

FACET is an open source library for human-explainable AI. It combines sophisticated model inspection and model-based simulation to enable better explanations of your supervised machine learning models.

它可以解決什麼問題呢?就是「讓資料科學家了解機器學習模型,並且在給定情況下解釋變數間的互動與對目標的影響」

就我使用過後的理解,我覺得這套工具特別適合用在以下場景中:

  • 「Trade-off」的商業環境
  • 模型解釋與商業洞察
  • 了解風險需要同時考慮的關鍵決策因素

「Trade-off」的商業環境

比方說鑽井平台風險分析,鑽得快可以更有效率產生商業價值(正面與收益),但同時也伴隨著事故風險(負面與成本),而傳統Machine learning 的建模只能告訴我們鑽速與事故的相關性,但在商業上我們更在意「多少鑽速可以有效降低事故風險,同時最有效率開挖油、水井」,而Gamma Facet可以回答這個問題。

模型解釋與商業洞察

不只關心「預測結果」,還想知道「可以怎麼優化結果?」、「如何解釋模型?」,尤其關心AI倫理以及避免偏見、安全的決策更需要這樣的AI技術,比如金融業貸款就不能產生任何歧視,包含區域、種族等…

了解風險需要同時考慮的關鍵決策因素

可以幫助我們對風險思考得更全面,舉例來說透過Facet對疾病風險建模,在醫療產業我們可以發現需要綜合考慮體重和體重來評估糖尿病風險,而體重指數和身高/腰圍比例可能是可以互換的。

Facet 解析

以下為Github 地址:https://github.com/BCG-Gamma/facet

可忽略最後一層結構

Gamma Facet的主要結構可以分為兩塊:

  • Inspection : 分析特徵之間的交互作用與對目標的解讀
  • Simulation : 模擬變數對於目標的影響

從下圖也可以看到Python的code十分簡潔

台灣金融產業資料示範

初步了解之後,我們可以直接來看看應用場景,這裡我使用臺灣金融產業的財報資料來示範,當然因為是「示範」,所以這並不構成任何策略與商業建議,我們也不會這樣照搬硬套工具到一個問題中(通常使用Facet還需要資料科學專家考量一系列對於資料、商業環境、企業內部資料治理、策略可產生行動、資料清洗的評估…等複雜問題),這裡只是單純設定一個場景來展示它的效果,資料、模型都是真實且公開可得的。

眾多會計科目

剛剛也提到Gamma Facet的適用場景為以下三點,因此我們試圖回答:

  • 「Trade-off」的商業環境 : 如果負債對金融業營收重要,如何在最小化債務風險中獲得最大營收?
  • 模型解釋與商業洞察:金融業的商業模式為何?能不能找到營收的主要貢獻來源?
  • 了解風險需要同時考慮的關鍵決策因素:負債會與誰交互作用?應收帳款?營運的費用率?

Gamma Facet的第一個特徵:找出重要抓手

讓模型自動篩選變數

商業上經常會在意20/80法則,這意味著我們需要找到最重要的特徵,比如產業的營收/增長主要來源、顧客流失的主要影響因素、消費額的核心驅動因素,而Gamma Facet或者許多機器學習模型都可以解決這個第一層問題。

在顧問業經常需要解決陌生產業的問題,建模也是如此,假定我們沒有任何會計知識,我們可能會先透過特徵重要性來幫助我們找出重要特徵,並且學習有關於該特徵的領域知識,比如下圖在一開始我把所有會計科目都放入模型中時,我們可以發現許多科目其實是無用的,因此可以把重要變數再抽取出來:

RF的特徵重要性

於是為了減少特徵冗余與更好辨識產業的營收主要增長來源,我們根據特徵重要性挑選出特徵並且再建模一次:

Modeling
篩選過後的模型特徵

而會計科目資料的特性就是通常都具有很高的相關性,如果我們使用線性迴歸的話很容易發生共線性的問題,比方說把相關矩陣畫出來:

特徵的相關係數圖

但這裡我們暫且不用理會,因為Facet也可以幫忙檢視這點,這點待會會提到。

左邊為特徵重要性,右邊為Shap值,分別表示x特徵高時對於目標(此為營收)的推升效果。我們可以得到幾點insight :

  1. 金融業最主要的營收抓手為負債,由Shap圖可以得知大部分情況下總負債愈高,則營收會愈高,這點很容易理解,這是因為金融業主要是靠存款、保費去生利息或投資賺錢的,也就是說他們的商業模式就是「金流」,用各種方式取得現金再透過投資賺取收入。
  2. 投資現金流,而第二抓手投資現金流與負債相反,通常投資現金流越低則營收越高,這是因為投資現金在數字上為負,因此我們可以得知事實上投資現金流會帶來金融業營收,投資現金流在商業銀行中經常用於策略性投資,包括利息收入、債券、基金等等…
  3. 營業費用率也是重要抓手,扣除掉金融業本來的資金成本,銀行營運的費用多半會是人力費用(薪資)與借出成本(呆帳費用)。這個變數可以顯示商業銀行的收入會返回給員工多少錢。而人力成本屬於變動成本,在收入增加的同時營業費用也會隨之增加。

因此由以上三點,我們其實可以分析出金融業的商業模式主要由三個面向構成:

  1. 利差:透過金融生財的基礎就在於取得資金的成本要小於投資回報,而利差提供的Profit rate只要將本金衝高就可以提升營收,因此這反映於為何銀行營收主要抓手為負債
  2. 投資收入:反映於投資現金流
  3. 營業規模:主要體現於手續費收入,這點可由營業費用率反應

這點可與產業專家確認,並且思考這些變數身為核心驅動的主要原因、為什麼等問題。

Gamma Facet的第二個特徵:協同性

我們也會想要了解不同特徵是怎麼相互運作的,此時可以透過Gamma Facet可以建立一個Synergy matrix,如下圖:

協同性矩陣,檢視特徵的互補效果

這個矩陣的讀法如下:

  • 矩陣列 — 需要依賴其他特徵程度:表示該對中的“ perspective from”特徵。在整個列中可以發現應收帳款,與模型中的其他功能的協同作用相對最小(≤3.7%)。
  • 矩陣行 — 重要被依賴程度:看固定資產週轉的行(即與固定資產週轉配對的其他特徵的透視圖),發現許多特徵與固定資產週轉有協同作用(0.6%至36%),這代表許多科目其實需要搭配該科目才有預測意義。

綜合考量 : 在分析財報不同科目對商業影響(此為營收)時,必須謹慎考慮高度協同的特徵(此為會計科目),因為它們搭配在一起可高度預測結果。比方說從高度協同的固定資產周轉與投資現金流(協同性22%)角度下,在「不分析固定資產週轉的情況下」,用投資現金流去預測營收是缺乏意義的事情。怎麼理解這件事情呢?我們可以把兩項科目的預測力做散點圖,並且根據預測力來標注顏色:

特徵交互作用分析

可以看到幾個有趣的事情:

  • 投資現金流如果為0,則無論固定資產週轉為何對於營收的預測能力基本上是0
  • 隨著投資現金愈多,給定固定資產週轉下預測能力也會下降(營收難以預測),這對學過財管或者初級會計學的人來說也是make sense的

通常較高的固定資產周轉率表示在產生收入時更有效地使用固定資產。比率低可能表明效率低下,資本密集型業務環境,或尚未滿負荷運營的新業務,而投資現金流告訴我們在金融產業這項指標意味著資本密集型業務環境導致了這種結果。

Gamma Facet的第三個特徵:冗余性

接著我們看第三個特徵:冗餘性

有些特徵會影響我們對於變數解釋的解讀,比如共線性、指標高度重疊,我們可以透過Gamma-Facet 看到不同特徵的冗余群組:

同一群組表示高度冗余 I
同一群組表示高度冗余 II

如同在會計意義所顯示的,其實我們不需要將資產與固定資產放在一起以預測營收,事實上根據我們的簡單模型,也許總負債、總資產、保留盈餘、投資現金流、固定資產周轉、負債比、應收帳款週轉、資本支出即足以預測營收。

Gamma Facet的第四個特徵:模擬分析

接下來就是我們所好奇的負債的Tradeoff,適當的負債從前面的商業模式知道可以增加營收,但太高的負債又會造成企業風險增加,我們好奇的就是「什麼情況下的負債可以最小化風險,同時最大化營收呢?」

  • 我們使用FACET的ContinuousRangePartitioner將總負債的觀測值範圍分成相等大小的間隔。每個分區由該分區的中心值表示。
  • 對於每個分區,模擬器將創建原始樣本的人工資料,假設要模擬的變量在所有觀測值中都具有相同的值-這是代表切分區的值。現在,使用從Ranker獲得的最佳LearnerCrossfit,模型可以使用針對所有折疊訓練的模型來重新預測所有目標,並確定由此得出的目標變量的平均提升量。
模擬分析圖

模擬:我們可以從該圖得出結論,總負債的較高值與營收的增加有關,而總負債的較高值(1%或更高)會導致營收的顯著提高。

模擬結果表明,隨著我們提高總負債,營收將可能大大增加。它提供了以更高的負債進行財務操作以提升營收的見解。我們還可以看到分佈圖,在很多情況下,負債都維持在極低的水平,這也許是因為高度監管的環境,或者許多人並未發現這個甜蜜點,我們可以看到我們不必大量增加舉債,而是透過跨過Elbow的負債使得負債比維持在一定程度即可以提高營收。

從商業的角度來看,對這些“假設”問題的答案對於評估風險和尋找改善當前流程的方法非常有價值。根據模擬的結果,我們的下一步可能是債務(存款、保險)的資金成本效益分析,以在資金成本與舉債的財務風險之間取得最佳平衡。

那麼以上,就是這次對於Gamma Facet的介紹,我們透過人工智慧了解了金融產業的特質(商業模式)、會計科目的預測效果、相互互動效果以及對營收的影響,目前我已經將此工具應用到不同數據分析的專案上,均獲得非常棒的成果展示,大家也不妨使用看看哦!

歡迎對數據分析、商業策略有興趣的讀者追蹤,我們下一篇文章見!

歡迎想學習Python資料科學、商業分析、金融知識的人一起交流!本部落格的內容全部都是基於「分享」的實作、理論兼顧文章,希望能夠幫助到所有對資料科學領域有興趣的人們,長期關注可按左手邊的Follow!若喜歡我在 Medium 的內容,可以拍個手(Claps)這邊想做個實驗,好讓我知道你/妳喜不喜歡這篇文章:
拍 10 下:簽個到,表示支持(謝謝鼓勵!)
拍 20 下:想要我多寫「商管相關」
拍 30 下:想要我多寫「資科相關」
拍 50 下:我有你這讀者寫這篇也心滿意足了!

敬請期待下一篇!或是您也可以逛逛我的其他資料科學文章,到我的主頁置頂文章獲得良好的目錄體驗。

Python資料科學系列:

如果想跟著我實作資料科學,開始寫程式必知必會基礎系列:

--

--

戴士翔 | Dennis Dai
Finformation當資料科學遇上財務金融

外商分析顧問,Ex- Apple Data Scientist,曾在FMCG巨頭/日商管顧/MBB管顧/高成長電商從事商業分析與數位轉型,專注分享管顧、商業、數據分析的思考。分析/演講/合作歡迎來信:dennis.dai.1011@gmail.com