聯合投資公司金融機器學習中的 Python
介紹
聯合投資公司是德國最大的資產管理公司之一,為德國和其他歐洲國家的客戶管理總計超過 3500 億美元的資產。作為一家積極主動的基本面資產管理公司,我們始終致力於進一步改進我們的投資流程。在一個每天都會建立和提供越來越多資料的世界中,為我們的投資流程採用新的資料來源和資訊是我們業務成功的關鍵因素。
Python 的機器學習
將新資料整合到資產管理中的一個有前景的方法是機器學習 (ML),它允許揭示金融時間序列資料中發現的模式,並利用這些模式來做出更好的投資決策。機器學習使我們能夠
- 識別可能的收益驅動因素,無論是單個股票的層面,還是整個資產類別(如股票或債券市場),
- 預測關鍵績效指標,例如公司層面的收入,以及
- 確定我們是否可以從特定資料集獲益,並從中為我們的投資流程獲得價值。
為了為這些任務建立機器學習模型,我們開發了自己的機器學習平臺 MALINA - MAchine Learning for INvestment Applications(投資應用的機器學習)——這是一個為金融時間序列資料建立可解釋的機器學習模型而量身定製的解決方案。MALINA 完全使用 Python 開發,包含超過 3 萬行 Python 程式碼。
在我們的 MALINA 框架內,我們建立了四個解耦的模組
- 一個機器學習模組,它允許我們使用不同的 ML 演算法為金融時間序列資料定義和基準測試模型,
- 一個回溯測試模組,它允許我們基於已開發的 ML 模型執行交易策略的回溯測試,
- 一個模型解釋模組,它集成了我們自己的解釋方法,用於 ML 模組中可用的一些機器學習演算法,以及
- 一個基於 Web 的使用者介面,允許使用者定義和基準測試模型,而無需實際編寫程式碼。
尤其是模組 3,即為解釋我們的機器學習模型開發新方法,對我們至關重要。此模組允許我們開啟機器學習的黑匣子,並瞭解我們的模型及其預測,這進一步幫助我們揭示這些模型學習到的模式。

圖:我們基於 Web 的使用者介面截圖,該介面由 Python 和 Django 框架提供支援。
Python 的卓越生態系統
除了 Python 語言本身之外,使用 Python 還使我們能夠大量依賴來自 Python 生態系統的經過驗證的開源庫,例如
- Pandas,它提供了一個強大而強大的框架來管理和分析資料,
- Scikit-Learn,它是 Python 中機器學習的“首選”包,並且被許多人認為是所有機器學習的行業標準,
- statsmodels 和 XGBoost,它們擴充套件了 scikit-learn 的功能集,以提供高階統計模型和梯度提升,
- Django,一個出色的綜合框架,用於開發 Web 應用程式,我們基於它構建了基於 Web 的使用者介面,以及
- Sphinx,一個出色的包,用於從 Python DocStrings 建立文件,並允許我們自動使我們的文件與程式碼的開發保持同步。
所有這些包都具有眾所周知且廣泛應用的優勢,這意味著可以在網上找到針對每個包的大量文件和討論。此外,每個包都作為開源軟體提供,這意味著我們可以輕鬆地深入研究現有程式碼。例如,對於 Scikit-Learn 提供的機器學習演算法,這意味著我們能夠開發我們自己的擴充套件,例如定製的解釋方法——這在使用專有的機器學習框架時是不可能的。
此外,Python 生態系統內提供的許多較小的包都非常有用,並在開發 MALINA 時為我們節省了大量時間。這裡的一個特殊例子可能是 joblib,它使得以與平臺無關的方式並行化計算變得非常容易,而無需為底層作業系統的細節而煩惱。
最後,跨平臺功能意味著我們可以輕鬆地將 MALINA 移植到不同的平臺。因此,雖然在開發過程中我們可以堅持使用我們公司常用的 Windows 機器,但我們可以隨時切換到 Linux 系統,以便在生產環境中使用我們的 MALINA 框架。
結論
機器學習在分析和預測金融時間序列方面提供了令人興奮的新可能性。由於金融市場的性質,開箱即用的機器學習工具並不總是按預期工作。更多定製和調整的方法提供了更大的見解。
因此,聯合投資公司使用 Python 開發了專有的機器學習工具 MALINA。此工具允許我們開發用於金融應用的機器學習模型,並使用專有的解釋方法來更好地理解這些模型。
聯合投資公司發現,Python 及其廣泛的庫非常適合開發定製的機器學習工具,以應對金融時間序列帶來的複雜挑戰。
關於作者
Christian Mandery 博士目前在聯合投資公司擔任資料科學家/投資組合經理。作為投資組合管理中量化和智慧資料團隊的成員,他主要負責機器學習模型在投資決策中的應用以及對此類模型的解釋。Christian 擁有德國卡爾斯魯厄理工學院 (KIT) 的計算機科學文憑學位和工程博士學位。
Nikolas Gerlich 目前在聯合投資公司擔任高階資料科學家。他負責在投資組合管理部門內建立資料科學能力。這包括整合新的資料來源和採用新的定量方法,例如機器學習,以增強投資決策。Nikolas 曾在蒂賓根大學和牛津大學學習經濟學和統計學。