Union Investment 將 Python 用於金融機器學習
引言
Union Investment 是德國最大的資產管理公司之一,為其在德國和其他歐洲國家的客戶管理著超過 3500 億美元的資產。作為一家積極主動的基本面資產管理公司,我們始終致力於進一步改進我們的投資流程。在一個每天都有越來越多資料被建立和可用的世界中,在我們的投資流程中採用新的資料來源和資訊是我們在業務中取得成功的關鍵因素。
使用 Python 進行機器學習
將新資料整合到資產管理中的一個有前途的方法是機器學習 (ML),它允許發現金融時間序列資料中存在的模式,並利用這些模式做出更好的投資決策。機器學習使我們能夠
- 識別可能的收益驅動因素,無論是在個股層面還是在整個資產類別(如股票或債券市場)層面,
- 預測公司層面的關鍵績效指標,例如收入,以及
- 確定我們是否可以從特定資料集中受益並從中為我們的投資流程獲取價值。
為了建立用於這些任務的機器學習模型,我們開發了自己的機器學習平臺 MALINA – MAchine Learning for INvestment Applications(投資應用機器學習)– 這是一個量身定製的解決方案,用於為金融時間序列資料建立可解釋的機器學習模型。MALINA 完全使用 Python 開發,包含超過 3 萬行 Python 程式碼。
在我們的 MALINA 框架中,我們建立了四個解耦模組
- 一個機器學習模組,允許我們使用不同的 ML 演算法定義和基準測試金融時間序列資料模型,
- 一個回溯測試模組,允許我們根據開發的 ML 模型對交易策略進行回溯測試,
- 一個模型解釋模組,它集成了我們自己的解釋方法,用於 ML 模組中可用的一些機器學習演算法,以及
- 一個基於網路的自定義使用者介面,允許使用者定義和基準測試模型,而無需實際編寫程式碼。
特別是模組 3,開發用於解釋我們機器學習模型的新方法,對我們來說至關重要。這個模組允許我們開啟機器學習的黑箱,理解我們的模型及其預測,這進一步幫助我們發現這些模型學到的模式。
圖:由 Python 和 Django 框架支援的基於網路的自定義使用者介面截圖。
Python 卓越的生態系統
除了 Python 語言本身,使用 Python 還能讓我們大量依賴 Python 生態系統中成熟的開源庫,例如
- Pandas,它提供了一個強大而 robust 的框架來管理和分析資料,
- Scikit-Learn,它是 Python 中機器學習的“首選”軟體包,並被許多人認為是所有機器學習的行業標準,
- statsmodels 和 XGBoost,它們擴充套件了 scikit-learn 的功能集,以提供高階統計模型和梯度提升,
- Django,一個優秀而全面的框架,用於開發我們構建基於網路的自定義使用者介面的 Web 應用程式,以及
- Sphinx,這是一個優秀的軟體包,用於從 Python DocStrings 建立文件,並允許我們自動保持文件與程式碼開發同步。
所有這些軟體包的優點是眾所周知且廣泛建立,這意味著可以為每個軟體包線上找到大量的文件和討論。此外,這些軟體包作為開源軟體可用意味著我們可以輕鬆深入到現有程式碼中。例如,對於 Scikit-Learn 提供的機器學習演算法,這意味著我們能夠開發自己的擴充套件,例如定製的解釋方法——這在使用專有機器學習框架時是不可能實現的。
此外,Python 生態系統特性中許多較小的軟體包在開發 MALINA 時非常有用,併為我們節省了大量時間。這裡的一個特別例子可能是 joblib,它使得以平臺無關的方式平行計算變得極其容易,而無需處理底層作業系統的細節。
最後,跨平臺功能意味著我們可以輕鬆地將 MALINA 移植到不同的平臺。因此,雖然在開發時我們可以堅持使用公司常用的 Windows 機器,但我們可以輕鬆切換到 Linux 系統,以便在生產環境中使用我們的 MALINA 框架。
結論
機器學習在分析和預測金融時間序列方面提供了令人興奮的新可能性。由於金融市場的性質,開箱即用的機器學習工具並不總是按預期工作。更定製化和適應性的方法可以提供更深入的見解。
因此,Union Investment 使用 Python 開發了專有的機器學習工具 MALINA。該工具使我們能夠為金融應用開發機器學習模型,並使用專有解釋方法來更好地理解這些模型。
Union Investment 認為 Python 及其各種庫的應用非常適合開發定製的機器學習工具,以應對金融時間序列帶來的複雜挑戰。
關於作者
Christian Mandery 博士目前在 Union Investment 擔任資料科學家/投資組合經理。作為投資組合管理中量化和智慧資料團隊的成員,他主要負責機器學習模型在投資決策中的應用以及這些模型的解釋。Christian 擁有德國卡爾斯魯厄理工學院 (KIT) 的計算機科學文憑和工程博士學位。
Nikolas Gerlich 目前在 Union Investment 擔任高階資料科學家。他負責在投資組合管理部門內建立資料科學能力。這包括整合新的資料來源和採用新的量化方法,例如機器學習,以增強投資決策。Nikolas 在圖賓根大學和牛津大學學習經濟學和統計學。
