skfolio: Portfolio Optimization in Python

ArXiv ID: 2507.04176 “View on arXiv”

Authors: Carlo Nicolini, Matteo Manzi, Hugo Delatte

Abstract

Portfolio optimization is a fundamental challenge in quantitative finance, requiring robust computational tools that integrate statistical rigor with practical implementation. We present skfolio, an open-source Python library for portfolio construction and risk management that seamlessly integrates with the scikit-learn ecosystem. skfolio provides a unified framework for diverse allocation strategies, from classical mean-variance optimization to modern clustering-based methods, state-of-the-art financial estimators with native interfaces, and advanced cross-validation techniques tailored for financial time series. By adhering to scikit-learn’s fit-predict-transform paradigm, the library enables researchers and practitioners to leverage machine learning workflows for portfolio optimization, promoting reproducibility and transparency in quantitative finance.

Keywords: Python library, scikit-learn, mean-variance optimization, cross-validation, risk management, general assets

Complexity vs Empirical Score

  • Math Complexity: 8.5/10
  • Empirical Rigor: 7.0/10
  • Quadrant: Holy Grail
  • Why: The paper presents advanced mathematical formulations including convex optimization, risk measures, shrinkage, and copula models, justifying a high math score. It provides concrete code examples, integration with scikit-learn, and discusses backtesting and cross-validation, showing strong empirical rigor.
  flowchart TD
    A["Research Goal: Develop Portfolio Optimization Library"] --> B["Methodology: skfit Estimator Framework"]
    B --> C["Input: Financial Time Series Data"]
    C --> D["Computational Process: Fit-Predict-Transform & Cross-Validation"]
    D --> E["Outcome: Diverse Allocation Strategies & Risk Management"]