skfolio/skfolio

Python library for portfolio optimization built on top of scikit-learn

What it solves

傳統的均值-變異數優化 (MVO) 通常面臨對輸入參數高度敏感、權重集中以及樣本外表現不佳的問題。skfolio 提供了一個統一且以機器學習為導向的框架,用於建立、微調與驗證投資組合模型,透過標準化的 API 幫助使用者 mitigator 數據洩漏與過度擬合等風險。

How it works

基於 scikit-learn 之上的 skfolio 實作了廣泛的投資組合優化與風險管理工具。它允許使用者定義一個包含以下內容的 pipeline:

  • Estimators: 計算預期報酬率、共變異數與變異數的工具,包括去噪與收縮等進階階方法。
  • Optimization Models: 從簡單配置 (Equal-Weighted) 到複雜的凸優化 (Mean-Risk, Risk Budgeting) 以及分群法 (Hierarchical Risk Parity) 的各種策略。
  • Prior Estimators: 透過 Black & Litterman、因子模型或使用 Vine Copulas 生成的合成數據來整合觀點。
  • Validation Tools: 針對時間序列數據的專門化交叉驗證技術,例如 Walk Forward 與 Combinatorial Purged Cross-Validation。
  • Constraints: 支援對交易成本、管理費以及各種權重或群組限制。

Who it’s for

需要一個強大且與 scikit-learn 相容的函式庫,用於專業資產配置與風險管理的量化研究員、投資組合經理人與數據科學家。

Highlights

  • Scikit-learn Integration: 與 GridSearchCV, RandomizedSearchCV, 與 Pipeline 完全相容,可實現無縫的模型選擇與超參數調整。
  • Extensive Model Library: 支援廣泛的風險衡量指標 (CVaR, EVaR, Maximum Drawdown) 與優化目標。
  • Advanced Risk Management: 包含透過合成數據進行壓力測試,以及使用熵池化 (entropy pooling) 來整合主觀觀點的工具。 n- Robust Validation: 實作了專門的金融交叉驗證,以防止前瞻性偏差 (look-ahead bias)。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案