You will be provided with a reference and some statements. Please determine whether each statement is 'supported', 'unsupported', or 'unknown' with respect to the reference. Please note:
First, assess whether the reference contains any valid content. If the reference contains no valid information, such as a 'page not found' message, then all statements should be considered 'unknown'.
If the reference is valid, for a given statement: if the facts or data it contains can be found entirely or partially within the reference, it is considered 'supported' (data accepts rounding); if all facts and data in the statement cannot be found in the reference, it is considered 'unsupported'.

You should return the result in a JSON list format, where each item in the list contains the statement's index and the judgment result, for example:
[
    {
        "idx": 1,
        "result": "supported"
    },
    {
        "idx": 2,
        "result": "unsupported"
    }
]

Below are the reference and statements:
<reference>
skfolio: Portfolio Optimization in Python
Carlo Nicolini* †
Ipazia SpA
Milan, Italy
c.nicolini@ipazia.com

Matteo Manzi†
Orion Finance
Paris, France
matteomanzi09@gmail.com

Hugo Delatte†
SKFolio Labs
London, UK
hugo.delatte@gmail.com

arXiv:2507.04176v2 [cs.LG] 8 Jul 2025

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.

1

Introduction

Portfolio optimization, first introduced by Markowitz’s Modern Portfolio Theory (MPT)
[Markowitz, 1952], is a key concept in quantitative finance. However, putting MPT into
practice comes with several challenges. These include high sensitivity to expected return and
risk estimates, lack of diversification, frequent changes in asset weights (i.e. high turnover),
and poor performance when tested on new data (i.e. overfitting). There are many different
optimization methods, pre-selection techniques, distribution and moment estimators available, and they are often combined in practice, making the process even more complex. This
highlights the need for a single, unified framework that leverages machine learning for model
selection, validation, and parameter tuning, while also mitigating the risks of overfitting and
data leakage [Arnott et al., 2019, Bailey et al., 2016].
Such a framework is essential for the quantitative finance community, which faces persistent
challenges in bridging the gap between sophisticated financial theory and practical implementation. These challenges include: (i) a fragmented ecosystem, where existing libraries lack
consistent interfaces and comprehensive feature sets; (ii) limited reproducibility, as proprietary
solutions hinder research validation and collaboration; (iii) poor machine learning integration,
with traditional portfolio tools not fitting seamlessly into modern data science workflows; and
(iv) inadequate cross-validation, since standard ML methods often fail to account for temporal
dependencies inherent in financial data.
In this work, we present skfolio, an open-source library designed to address these challenges.
Built on top of the standardized scikit-learn API [Pedregosa et al., 2011], skfolio offers a
comprehensive framework for portfolio optimization and risk management. This approach
ensures seamless integration with existing machine learning workflows, while preserving the
mathematical rigor essential for robust portfolio construction.

∗ Corresponding author. †Equal contribution.

Preprint. Under review.
© Copyright for this paper by its authors. Licensed under CC-BY 4.0.

2

Design and Implementation

2.1

Overview and Basic Usage

skfolio follows a modular architecture that integrates seamlessly with the scikit-learn ecosystem. Figure 1A illustrates the library’s core components and their interactions. The library
is built around three fundamental principles: (i) scikit-learn compatibility: all estimators
inherit from BaseEstimator, implementing the standard fit-predict-transform paradigm, (ii)
mathematical rigor: state-of-the-art portfolio optimization methods with numerical stability implemented in cvxpy [Diamond and Boyd, 2016], (iii) transparency and reproducibility:
open-source design promoting research reproducibility.
As an example, we demonstrate how to find the minimum variance portfolio with a maximum
weight constraint and L2 regularization on the portfolio weights, and how to generate the
corresponding efficient frontier. This is formulated as a convex minimization problem.
min

w T Σ̂w + λw T w

s.t.

wT 1 = 1
wAAPL ≤ 0.2

w

(1)

where Σ̂ is the sample covariance matrix, λ is the L2 regularization parameter. In Figure 1B,
we implement the convex optimization problem from Equation (1). We load the S&P 500
dataset, convert prices to returns, and solve for 100 points on the mean-risk frontier, imposing a
maximum weight of 20% for AAPL and L2 regularization with λ = 0.01. Figure 1C, shows the
frontier for the problem, divided over train and test set.
A.

B.
from skfolio.datasets import load_sp500_dataset
from skfolio.optimization import (
MeanRisk,
ObjectiveFunction
)
from skfolio.measures import RiskMeasure
from skfolio.preprocessing import prices_to_returns
from sklearn.model_selection import train_test_split
# Load the prices and convert to returns
prices = load_sp500_dataset()
X = prices_to_returns(prices)
X_train, X_test = train_test_split(
X, test_size=0.2, shuffle=False
)
# Define a convex optimization problem
model = MeanRisk(
risk_measure=RiskMeasure.VARIANCE,
objective_function=ObjectiveFunction.MINIMIZE_RISK,
efficient_frontier_size=100,
max_weights={"AAPL": 0.2},
l2_coef=0.01
)

Hypertune parameters (GridSearch etc)
returns
metadata

Data provider

Input

train_test_split( , )
Hyperparameters

train

test

fit_transform( train)
transform( test)

Preselection
cross_validate

train

test

fit_predict( train)
Best
parameters

Efficient frontier

Portfolio train

BaseOptimization
Estimator

predict( test)

Backtesting

Summary

Portfolio test

C.
train

test

Annualized Mean

0.35

0.30

0.25

0.20

# Fit on training data and predict on test data
model.fit(X_train)
ptf_train = model.predict(X_train)
ptf_test = model.predict(X_test)
ptf_train.summary(), ptf_test.summary()

0.15
0.15

0.20

0.25

0.30

0.35

0.40

0.45

0.50

0.55

Annualized Standard Deviation

Figure 1: (A) skfolio architecture showing the integration between data preprocessing,
optimization methods, and evaluation components within the scikit-learn framework. (B)
Basic usage example of finding the minimum variance portfolio. (C) Efficient frontier for
the minimum variance portfolio on the S&P 500 dataset, over both train and test data. The
training frontier dominates the test frontier, showing the overfitting of the model.

2.1.1

Convex Optimization Methods

The MeanRisk class covers all the convex optimization problems that can be formulated as risk
minimization, expected returns maximization, utility maximization, and ratio maximization
(Table 1). Multiple risk functions are supported (e.g. variance, CVaR, CDaR, and many more).
All problems have an additional regularization cost described by the L(w) term including L1
and L2 norms of the portfolio weights, transaction costs, management fees and parameters
uncertainty loss for robust parameters estimation [Mohajerin Esfahani and Kuhn, 2018, Ceria

2

and Stubbs, 2006]. Granular control over the number of assets in a portfolio can be achieved
by applying cardinality constraints (i.e., specifying a maximum number of assets), which are
supported through specialized MIP solvers. Prior estimators may also be incorporated to assist
in estimating expected returns, the covariance matrix, or to impose additional structure on the
optimization problem.
Minimize
Risk

argmin
riski (RT w) + L(w)

w


s.t.
w T µ ≥ µmin
Aw ≥ b



T
riskj (R w) ≤ riskmax
, ∀ i ̸= j
j

Maximize Expected Returns

w T µ − L(w)
 argmaxw
s.t.
Aw ≥ b

riskj (RT w) ≤ riskmax
,∀ j
j

Maximize Utility
Maximize
Ratio


wT µ
T µ − λ × risk ( RT w ) − L( w ) 

argmax
w
argmax
− L(w)


i
w
w




riski (RT w)
s.t.
w T µ ≥ µmin
s.t.
w T µ ≥ µmin
Aw ≥ b




Aw ≥ b



,∀ j
riskj (RT w) ≤ riskmax

j
,∀ j
riskj (RT w) ≤ riskmax
j
Table 1: The four formulations of convex portfolio optimization problems implemented in
skfolio. The risk function riski is chosen from one of the many risk functions available. The
optimization variables are the portfolio weights w, the constraints are encoded in the A and
b matrices. The main input variable are the asset excess returns R. The parameter µmin is the
minimum acceptable excess return, riskmax
is the maximum acceptable risk for the i-th risk
i
measure, while the L(w) encodes additional regularization terms.

2.2

Prior Estimation Methods

Prior estimators are all the necessary methods to provide additional information to the optimization process. skfolio supports sophisticated prior estimation methods that enhance
portfolio optimization by incorporating domain knowledge or analyst views, and addressing
estimation errors. Frequentist or Bayesian approaches like parameters shrinkage (Bayes-Stein
for returns [Jorion, 1986], shrinkage for covariance matrix [Ledoit and Wolf, 2004]) and BlackLitterman [He and Litterman, 2002] are available as prior specifiers, together with classical
factor models [Jurczenko, 2015]. Advanced information-theoretic approaches, such as opinion
pooling [Good, 1952] and entropy pooling [Meucci et al., 2011, Meucci, 2012] are also supported,
offering robust alternatives for asset allocation in non-Gaussian markets, where investors hold
complex views beyond simple return forecasts.
The following example highlights how seamlessly skfolio integrates with scikit-learn
by specifying a factor model prior within a convex optimization problem. Here, a ridge
regressor with α = 0.1 is used to estimate the factor loading matrix, embedded directly in
the MeanRisk optimizer. This setup allows for flexible model specification and, if desired,
the ridge regularization parameter α can be further fine-tuned using time-series-aware crossvalidation (Section 3).
from skfolio.prior import FactorModel, LoadingMatrixRegression
from sklearn.linear_model import Ridge
from skfolio.datasets import load_factors_dataset
factor_prices = load_factors_dataset()
# factors and prices are aligned in time
X, y = prices_to_returns(prices, factor_prices)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, shuffle=False
)
# Create factor model with custom regression
model = MeanRisk(
risk_measure=RiskMeasure.VARIANCE,
objective_function=ObjectiveFunction.MINIMIZE_RISK,
max_weights={"AAPL": 0.2},
l2_coef=0.01,
prior_estimator=FactorModel(
loading_matrix_estimator=LoadingMatrixRegression(
linear_regressor=Ridge(alpha=0.1),
)
)
)
model.fit(X_train, y_train)

3

2.2.1

Expected Returns and Covariance Estimation

As the empirical covariance matrix often suffers from instability and estimation error, skfolio
addresses this by implementing a comprehensive suite of advanced covariance estimators.
Shrinkage methods improve stability by contracting the empirical matrix toward a structured
target [Ledoit and Wolf, 2004]. Techniques based on Random Matrix Theory (RMT) [Laloux et al.,
2000] denoise the matrix by filtering out eigenvalues associated with noise. For uncovering
sparse dependency structures, the Graphical Lasso [Friedman et al., 2008] is available for
estimating the inverse covariance matrix. The library also includes other robust estimators, like
the Gerber statistic [Gerber et al., 2019], which measures co-movement by focusing only on
significant joint fluctuations.
Estimation of expected returns implementing shrinkage [Jorion, 1986] and exponentially
weighted averaging can also be used to improve the stability of solutions.
2.2.2

Copula-based Synthetic Priors

skfolio provides advanced stress testing capabilities through synthetic data generation using
copula models. In recent years, copula-based methods [Nelsen, 2006] have emerged as a powerful alternative to traditional mean-variance approaches in portfolio optimization [McNeil
et al., 2015], particularly when modeling nonlinear dependencies, tail risk, and asymmetric
correlations [Kakouris and Rustem, 2014, Han et al., 2017]. Common bivariate copula models are supported, (Gaussian, Student-t, etc.), together with the multi-variate vine copula,
crucial for capturing real-world phenomena such as heavy tails, skewness, and extreme comovements—features frequently observed in financial time series but poorly captured by
multivariate normal distributions. Additional conditioning on vine copula allows to impose
views on the tail dependencies of the returns distribution, as shown in Figure 2.
Historical

Generated

PDF of the Bivariate StudentTCopula

0.2

2.0

AAPL

0.1
0.0
0.8

−0.1

1.6

−0.2
0.2
1.2

v

0.0
−0.1

PDF

JPM

0.6

0.1

0.4

0.8

0.15

LLY

0.10
0.2

0.05

0.4

0.00
−0.05
−0.10

0.0

−0.2

−0.1

0.0

AAPL

0.1

0.2

−0.1

0.0

0.1

0.2

JPM

−0.1

0.0

0.1

0.2

LLY

0.4

0.6

0.8

u

Figure 2: Left panel: joint distribution visualization of the vine copula structure and synthetic
data generation results over just three asset pairs. The synthetic data are generated by sampling
from a vine copula fitted on the historical returns. Right panel: two dimensional density of a
bivariate Student-t copula on historical AAPL and JPM returns.

2.3

Ensemble and clustering

skfolio includes alternative optimization approaches that do not rely solely on convex optimization. Many of these methods leverage clustering or ensemble techniques. For example,
Hierarchical Risk Parity [Lopez de Prado, 2016a] builds portfolios without requiring inversion
of the covariance matrix, improving stability. Nested Clustering Optimization [Lopez de Prado,
2016b] further enhances robustness by combining hierarchical clustering with cross-validation
to reduce overfitting. In the context of financial markets, where data is often characterized by
noise and non-stationarity, ensemble techniques like stacking [Wolpert, 1992, De Prado, 2018]
are also very effective in mitigating overfitting and enhancing portfolio robustness and out of
sample performance.

4

3

Model selection

Financial data often exhibit serial correlation, meaning that past values are correlated with
future values, and this characteristic can lead to overfitting if not properly addressed. Moreover, financial datasets are prone to train-test leakage, where information from the test set
inadvertently influences the training process, thus skewing the evaluation of the model’s
performance.
To mitigate these issues, skfolio employs advanced cross-validation techniques such as Combinatorial Purged Cross-Validation (CPCV) with purging and embargoing [De Prado, 2018].
Unlike traditional KFold cross-validation, which randomly splits the data into folds, CPCV is
designed to handle the temporal dependencies inherent in time series data. It does so by using
k − p folds for training, where p > 1 allows for multiple test folds, thereby providing a more
robust evaluation of the model’s predictive power. Purging involves removing any training
data that overlaps in time with the test set, ensuring that no future information is leaked into the
training process. Embargoing further enhances this by excluding data immediately following
the test set from the training data, preventing any potential leakage from adjacent time periods.
Additionally, a walk-forward cross-validator implements a rigorous, time-ordered splitting
strategy tailored for portfolio backtesting. In contrast to conventional k-fold schemes, it respects
the chronological order of observations, ensuring that each test set consists solely of future data
relative to its training counterpart. This design provides a high degree of control for evaluating
portfolio strategies under realistic, forward-looking conditions.
In the following example we demonstrate the use of stacking optimization with three estimators
based on convex and hierarchical methods. We use a walk-forward cross-validation to evaluate
the portfolio performance on the test set with the custom cross_val_predict function from
skfolio.
from skfolio import Population
from skfolio.optimization import (
StackingOptimization,
EqualWeighted,
HierarchicalRiskParity,
InverseVolatility
)
from skfolio.model_selection import WalkForward, cross_val_predict
estimators = [
("IV", InverseVolatility()),
("CVAR", MeanRisk(risk_measure=RiskMeasure.CVAR)),
("HRP", HierarchicalRiskParity()),
]
benchmark = EqualWeighted().fit(X_train)
model_stacking = StackingOptimization(
estimators=estimators,
final_estimator=MeanRisk(
risk_measure=RiskMeasure.CVAR,
)
)
cv = WalkForward(train_size=252, test_size=60)
pred_stacking = cross_val_predict(
model_stacking, X_test, cv=cv,
portfolio_params={"name": "Stacking"}
)
pred_benchmark = cross_val_predict(
benchmark, X_test, cv=cv,
portfolio_params={"name": "EW"}
)
Population([pred_stacking, pred_benchmark]).summary()

4

Software Architecture and Availability

skfolio is implemented in Python 3.10+ and distributed under the BSD 3-clause license. Key
dependencies include NumPy, SciPy, scikit-learn, cvxpy-base [Diamond and Boyd, 2016] for
convex optimization and Clarabel [Goulart and Chen, 2024] for interior-point solvers. Other
commercial solvers like Gurobi [Gurobi Optimization, LLC, 2024], MOSEK [ApS, 2025] and
CPLEX [Cplex, 2009] can be used as well. The library is available via PyPI and conda-forge, with
comprehensive documentation at https://skfolio.org. The codebase follows established
software engineering practices: comprehensive test suite with > 95% code coverage, continuous
integration via GitHub Actions, automated documentation generation, type hints and docstring
standards for maintainability.

5

5

Ongoing Innovation and Development

The skfolio library is under continuous, active enhancement, with a focus on integrating
the latest advances in portfolio theory. We are currently implementing the Schur Complementary Allocation method [Cotton, 2024] and adding support for Multiple Randomized
Cross-Validation [Palomar, 2025]. These ongoing efforts ensure that skfolio remains a living,
rapidly evolving toolkit for both researchers and practitioners.

6

Conclusion

skfolio bridges the gap between sophisticated portfolio optimization theory and practical
implementation by providing a comprehensive, open-source framework integrated with the
scikit-learn ecosystem. Its unified API, advanced cross-validation methods, and emphasis on
reproducibility make it a valuable tool for researchers and practitioners in quantitative finance.
The library’s modular design and extensive documentation lower barriers to entry while
maintaining mathematical rigor. By promoting transparency and reproducibility, skfolio
contributes to the democratization of advanced portfolio optimization techniques.
Future development focuses on expanding the library’s capabilities while maintaining its core
design principles of simplicity, transparency, and integration with the broader Python scientific
computing ecosystem.

Acknowledgments and Disclosure of Funding
We thank the skfolio open-source community and researchers for their contributions and
feedback. Special recognition goes to the scikit-learn and CVXPY contributors for their direct
work on the tools that underpin this library, as well as to the authors and maintainers of
Riskfolio-Lib [Cajas, 2025] and PyPortfolioOpt [Martin, 2021] for the inspiration they provided.
We also especially thank Vincent Maladière for his detailed feedback and suggestions.

References
MOSEK ApS. The MOSEK optimization toolbox for Python manual., 2025. URL https://docs.mosek.com/
11.0/pythonapi/index.html.
Rob Arnott, Robert D. Arnott, Campbell R. Harvey, Campbell R. Harvey, Harry M. Markowitz, and
Harry M. Markowitz. A backtesting protocol in the era of machine learning. The Journal of Financial
Data Science, 2019. doi: 10.3905/jfds.2019.1.064.
David H. Bailey, David H. Bailey, Jonathan M. Borwein, Jonathan M. Borwein, Marcos López de Prado,
Marcos Lopez de Prado, Qiji Jim Zhu, and Qiji J. Zhu. The probability of backtest overfitting. Journal of
Computational Finance, 2016. doi: 10.2139/ssrn.2326253.
Dany Cajas. Riskfolio-lib (7.0.1), 2025. URL https://github.com/dcajasn/Riskfolio-Lib.
Sebastián Ceria and Robert A Stubbs. Incorporating estimation errors into portfolio selection: Robust
portfolio construction. Asset Management, 7:270, 2006.
Peter Cotton. Schur complementary allocation: A unification of hierarchical risk parity and minimum
variance portfolios. Working Paper, 2024.
IBM ILOG Cplex. V12. 1: User’s manual for cplex. International Business Machines Corporation, 46(53):157,
2009.
Marcos Lopez De Prado. Advances in financial machine learning. John Wiley & Sons, 2018.
Steven Diamond and Stephen Boyd. Cvxpy: A python-embedded modeling language for convex optimization. Journal of Machine Learning Research, 17(83):1–5, 2016.
Jerome Friedman, Trevor Hastie, and Robert Tibshirani. Sparse inverse covariance estimation with the
graphical lasso. Biostatistics, 9(3):432–441, 2008.
Sander Gerber, Babak Javid, Harry Markowitz, Paul Sargen, and David Starer. The gerber statistic: A robust
measure of correlation. SSRN, 2019.
Irving John Good. Rational decisions. Journal of the Royal Statistical Society: Series B (Methodological), 14(1):
107–114, 1952.
Paul Goulart and Yuwen Chen. Clarabel: An interior-point solver for conic programs with quadratic
objectives. 2024. URL https://api.semanticscholar.org/CorpusID:269930193.
Gurobi Optimization, LLC. Gurobi Optimizer Reference Manual, 2024. URL https://www.gurobi.com.

6

Yingwei Han, Ping Li, and Yong Xia. Dynamic robust portfolio selection with copulas. Finance Research
Letters, 21:190–200, 2017.
Guangliang He and Robert Litterman. The intuition behind black-litterman model portfolios. Available at
SSRN 334304, 2002.
Philippe Jorion. Bayes-stein estimation for portfolio analysis. Journal of Financial and Quantitative analysis,
21(3):279–292, 1986.
Emmanuel Jurczenko. Risk-based and factor investing. Elsevier, 2015.
Iakovos Kakouris and Berç Rustem. Robust portfolio optimization with copulas. European Journal of
Operational Research, 235(1):28–37, 2014.
Laurent Laloux, Pierre Cizeau, Marc Potters, and Jean-Philippe Bouchaud. Random matrix theory and
financial correlations. International Journal of Theoretical and Applied Finance, 3(03):391–397, 2000.
Olivier Ledoit and Michael Wolf. A well-conditioned estimator for large-dimensional covariance matrices.
Journal of multivariate analysis, 88(2):365–411, 2004.
Marcos Lopez de Prado. Building diversified portfolios that outperform out-of-sample. Journal of Portfolio
Management, 2016a.
Marcos Lopez de Prado. A robust estimator of the efficient frontier. Available at SSRN 3469961, 2016b.
Harry Markowitz. Portfolio selection. The Journal of Finance, 7(1):77–91, 1952.
Robert Andrew Martin. Pyportfolioopt: portfolio optimization in python. Journal of Open Source Software,
6(61):3066, 2021. doi: 10.21105/joss.03066. URL https://doi.org/10.21105/joss.03066.
Alexander J McNeil, Rüdiger Frey, and Paul Embrechts. Quantitative risk management: concepts, techniques
and tools-revised edition. Princeton university press, 2015.
Attilio Meucci. Effective number of scenarios in fully flexible probabilities. GARP risk professional, pages
32–35, 2012.
Attilio Meucci, David Ardia, and Simon Keel. Fully flexible extreme views. Journal of Risk, 14(2):39–49,
2011.
Peyman Mohajerin Esfahani and Daniel Kuhn. Data-driven distributionally robust optimization using the
wasserstein metric: Performance guarantees and tractable reformulations. Mathematical Programming,
171(1):115–166, 2018.
Roger B Nelsen. An introduction to copulas. Springer, 2006.
Daniel P. Palomar. Portfolio Optimization, Theory and Application. Springer, 2025.
Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Vincent Michel, Bertrand Thirion, Olivier Grisel,
Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Vincent Dubourg, et al. Scikit-learn: Machine learning
in python. Journal of Machine Learning Research, 12:2825–2830, 2011.
David H Wolpert. Stacked generalization. Neural networks, 5(2):241–259, 1992.

7
</reference>

<statements>
1. Each paradigm introduces distinct mathematical assumptions, operational mechanics, and structural failure modes
2. The development of machine learning (ML) and deep learning (DL) introduces flexible, non-parametric function approximation to portfolio management
3. The signal-to-noise ratio in financial returns is exceptionally low, making high-capacity neural networks vulnerable to overfitting sample-specific market noise
4. Third, machine learning models optimize non-parametric downside risk measures, specifically Conditional Value-at-Risk (CVaR / Expected Shortfall) and learned uncertainty sets
5. Allocation in the Markowitz paradigm relies on deterministic quadratic programming (QP)
6. In the Markowitz Mean-Variance (MVO) framework, the Asset Allocation Engine uses deterministic Quadratic Programming (QP) yielding corner solutions
7. Evaluating quantitative allocation frameworks reveals several trade-offs between model capacity, estimation stability, and out-of-sample robustness
8. The central challenge in quantitative portfolio management is balancing model capacity against estimation error sensitivity
9. Conversely, deep neural networks reduce model bias by approximating complex functional relationships, but introduce substantial variance risk
10. Without structural regularization, deep models learn spurious patterns that fail to generalize out-of-sample, generating unstable portfolio allocations
11. The resulting posterior probabilities \(\tilde{p}\) feed directly into downstream convex risk optimization routines, such as Conditional Value-at-Risk (CVaR) minimization, establishing an integrated, non-parametric asset allocation pipeline
12. During forward propagation, the network generates predictions \((\hat{\mu}_\theta, \hat{\Sigma}_\theta)\), which are passed to an optimization layer solving a constrained quadratic or second-order cone program
13. The calibrated scenario matrix \(R\) and posterior probability vector \(\tilde{p}^*\) feed directly into an internal convex optimization layer
14. To align with institutional risk preferences, the engine replaces variance with Conditional Value-at-Risk (CVaR / Expected Shortfall) to constrain tail losses
15. The optimization balances expected scenario returns against tail risk, turnover constraints, and quadratic market impact
16. Scenarios \(R\), posterior probabilities \(\tilde{p}^*\), transaction cost matrices \(\Lambda_t\)
17. Differentiable convex layer solving CVaR minimization with turnover and impact penalties
18. The evolution of portfolio selection highlights a continuous effort to reconcile high-capacity predictive modeling with structural stability and risk management
</statements>

Begin the assessment now. Output only the JSON list, without any conversational text or explanations.