skfolio/skfolio

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

What it solves

従来の平均分散最適化 (MVO) は、入力パラメータへの高い感度、ウェイトの集中、およびアウトオブサンプルでの性能低下が課題となることが多いです。skfolio は、機械学習指向の統一されたフレームワークを提供し、ポートフォリオモデルの構築、微調整、検証を行うことで、標準化された API を通じてデータリークや過学習を防ぐユーザーを支援します。

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) を含みます。
  • Robust Validation: 先読みバイアス (look-ahead bias) を防ぐための、金融専門の交差検証を実装しています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト