skfolio.optimization.EqualWeighted#
- class skfolio.optimization.EqualWeighted(portfolio_params=None, fallback=None, previous_weights=None, raise_on_failure=True)[source]#
Equally Weighted estimator.
Each asset weight is equal to
1/n_assets.- Parameters:
- portfolio_paramsdict, optional
Portfolio parameters forwarded to the resulting
Portfolioinpredict. If not provided and if available on the estimator, the following attributes are propagated to the portfolio by default:name, andprevious_weights.- fallbackBaseOptimization | “previous_weights” | list[BaseOptimization | “previous_weights”], optional
Fallback estimator or a list of estimators to try, in order, when the primary optimization raises during
fit. Alternatively, use"previous_weights"(alone or in a list) to fall back to the estimator’sprevious_weights. When a fallback succeeds, its fittedweights_are copied back to the primary estimator so thatfitstill returns the original instance. For traceability,fallback_stores the successful estimator (or the string"previous_weights")and
fallback_chain_stores each attempt with the associated outcome.- previous_weightsfloat | dict[str, float] | array-like of shape (n_assets,), optional
When
fallback="previous_weights", failures will fall back to these weights if provided.- raise_on_failurebool, default=True
Controls error handling when fitting fails. If True, any failure during
fitis raised immediately, noweights_are set and subsequent calls topredictwill raise aNotFittedError. If False, errors are not raised; instead, a warning is emitted,weights_is set toNoneand subsequent calls topredictwill return aFailedPortfolio. When fallbacks are specified, this behavior applies only after all fallbacks have been exhausted.
- Attributes:
- weights_ndarray of shape (n_assets,) or (n_optimizations, n_assets)
Weights of the assets.
- fallback_BaseOptimization | “previous_weights” | None
The fallback estimator instance, or the string
"previous_weights", that produced the final result.Noneif no fallback was used.- fallback_chain_list[tuple[str, str]] | None
Sequence describing the optimization fallback attempts. Each element is a pair
(estimator_repr, outcome)whereestimator_repris the string representation of the primary estimator or a fallback (e.g."EqualWeighted()","previous_weights"), andoutcomeis"success"if that step produced a valid solution, otherwise the stringified error message. For successful fits without any fallback, this isNone.- error_str | list[str] | None
Captured error message(s) when
fitfails. For multi-portfolio outputs (weights_is 2D), this is a list aligned with portfolios.
Methods
fit(X[, y])Fit the Equal Weighted estimator.
fit_predict(X)Perform
fitonXand returns the predictedPortfolioorPopulationofPortfolioonXbased on the fittedweights.Get metadata routing of this object.
get_params([deep])Get parameters for this estimator.
predict(X)Predict the
Portfolioor aPopulationof portfolios onX.score(X[, y])Prediction score using the Sharpe Ratio.
set_params(**params)Set the parameters of this estimator.
Notes
All estimators should specify all parameters as explicit keyword arguments in
__init__(no*argsor**kwargs), following scikit-learn conventions.- fit(X, y=None)[source]#
Fit the Equal Weighted estimator.
- Parameters:
- Xarray-like of shape (n_observations, n_assets)
Price returns of the assets.
- yIgnored
Not used, present for API consistency by convention.
- Returns:
- selfEqualWeighted
Fitted estimator.
- fit_predict(X)#
Perform
fitonXand returns the predictedPortfolioorPopulationofPortfolioonXbased on the fittedweights. For factor models, usefit(X, y)thenpredict(X)separately.If fitting fails and
raise_on_failure=False, this returns aFailedPortfolio.- Parameters:
- Xarray-like of shape (n_observations, n_assets)
Price returns of the assets.
- Returns:
- Portfolio | Population
The predicted
PortfolioorPopulationbased on the fittedweights.
- get_metadata_routing()#
Get metadata routing of this object.
Please check User Guide on how the routing mechanism works.
- Returns:
- routingMetadataRequest
A
MetadataRequestencapsulating routing information.
- get_params(deep=True)#
Get parameters for this estimator.
- Parameters:
- deepbool, default=True
If True, will return the parameters for this estimator and contained subobjects that are estimators.
- Returns:
- paramsdict
Parameter names mapped to their values.
- property needs_previous_weights#
Whether
previous_weightsmust be propagated between folds/rebalances.Used by
cross_val_predictto decide whether to run sequentially and pass the weights from the previous rebalancing to the next. This isTruewhen transaction costs, a maximum turnover, or a fallback depending onprevious_weightsare present.
- predict(X)#
Predict the
Portfolioor aPopulationof portfolios onX.Optimization estimators can return a 1D or a 2D array of
weights. For a 1D array, the prediction is a singlePortfolio. For a 2D array, the prediction is aPopulationofPortfolio.If
nameis not provided in the portfolio parameters, the estimator class name is used.- Parameters:
- Xarray-like of shape (n_observations, n_assets) | ReturnDistribution
Asset returns or a
ReturnDistributioncarrying returns and optional sample weights.
- Returns:
- Portfolio | Population
The predicted
PortfolioorPopulationbased on the fittedweights.
- score(X, y=None)#
Prediction score using the Sharpe Ratio. If the prediction is a single
Portfolio, the score is its Sharpe Ratio. If the prediction is aPopulation, the score is the mean Sharpe Ratio across portfolios.- Parameters:
- Xarray-like of shape (n_observations, n_assets)
Price returns of the assets.
- yIgnored
Not used, present here for API consistency by convention.
- Returns:
- scorefloat
The Sharpe Ratio of the portfolio if the prediction is a single
Portfolioor the mean of all the portfolios Sharpe Ratios if the prediction is aPopulationofPortfolio.
- set_params(**params)#
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as
Pipeline). The latter have parameters of the form<component>__<parameter>so that it’s possible to update each component of a nested object.- Parameters:
- **paramsdict
Estimator parameters.
- Returns:
- selfestimator instance
Estimator instance.