skfolio 0.7.0__py3-none-any.whl → 0.8.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- skfolio/__init__.py +2 -2
- skfolio/cluster/__init__.py +1 -1
- skfolio/cluster/_hierarchical.py +1 -1
- skfolio/datasets/__init__.py +1 -1
- skfolio/datasets/_base.py +2 -2
- skfolio/datasets/data/__init__.py +1 -0
- skfolio/distance/__init__.py +1 -1
- skfolio/distance/_base.py +2 -2
- skfolio/distance/_distance.py +4 -4
- skfolio/distribution/__init__.py +56 -0
- skfolio/distribution/_base.py +203 -0
- skfolio/distribution/copula/__init__.py +35 -0
- skfolio/distribution/copula/_base.py +456 -0
- skfolio/distribution/copula/_clayton.py +539 -0
- skfolio/distribution/copula/_gaussian.py +407 -0
- skfolio/distribution/copula/_gumbel.py +560 -0
- skfolio/distribution/copula/_independent.py +196 -0
- skfolio/distribution/copula/_joe.py +609 -0
- skfolio/distribution/copula/_selection.py +111 -0
- skfolio/distribution/copula/_student_t.py +486 -0
- skfolio/distribution/copula/_utils.py +509 -0
- skfolio/distribution/multivariate/__init__.py +11 -0
- skfolio/distribution/multivariate/_base.py +241 -0
- skfolio/distribution/multivariate/_utils.py +632 -0
- skfolio/distribution/multivariate/_vine_copula.py +1254 -0
- skfolio/distribution/univariate/__init__.py +19 -0
- skfolio/distribution/univariate/_base.py +308 -0
- skfolio/distribution/univariate/_gaussian.py +136 -0
- skfolio/distribution/univariate/_johnson_su.py +152 -0
- skfolio/distribution/univariate/_normal_inverse_gaussian.py +153 -0
- skfolio/distribution/univariate/_selection.py +85 -0
- skfolio/distribution/univariate/_student_t.py +144 -0
- skfolio/exceptions.py +6 -6
- skfolio/measures/__init__.py +1 -1
- skfolio/measures/_enums.py +7 -7
- skfolio/measures/_measures.py +4 -7
- skfolio/metrics/__init__.py +2 -0
- skfolio/metrics/_scorer.py +4 -4
- skfolio/model_selection/__init__.py +2 -2
- skfolio/model_selection/_combinatorial.py +15 -12
- skfolio/model_selection/_validation.py +2 -2
- skfolio/model_selection/_walk_forward.py +3 -3
- skfolio/moments/covariance/_base.py +1 -1
- skfolio/moments/covariance/_denoise_covariance.py +1 -1
- skfolio/moments/covariance/_detone_covariance.py +1 -1
- skfolio/moments/covariance/_empirical_covariance.py +1 -1
- skfolio/moments/covariance/_ew_covariance.py +1 -1
- skfolio/moments/covariance/_gerber_covariance.py +1 -1
- skfolio/moments/covariance/_graphical_lasso_cv.py +1 -1
- skfolio/moments/covariance/_implied_covariance.py +2 -7
- skfolio/moments/covariance/_ledoit_wolf.py +1 -1
- skfolio/moments/covariance/_oas.py +1 -1
- skfolio/moments/covariance/_shrunk_covariance.py +1 -1
- skfolio/moments/expected_returns/_base.py +1 -1
- skfolio/moments/expected_returns/_empirical_mu.py +1 -1
- skfolio/moments/expected_returns/_equilibrium_mu.py +1 -1
- skfolio/moments/expected_returns/_ew_mu.py +1 -1
- skfolio/moments/expected_returns/_shrunk_mu.py +2 -2
- skfolio/optimization/__init__.py +2 -0
- skfolio/optimization/_base.py +2 -2
- skfolio/optimization/cluster/__init__.py +2 -0
- skfolio/optimization/cluster/_nco.py +7 -7
- skfolio/optimization/cluster/hierarchical/__init__.py +2 -0
- skfolio/optimization/cluster/hierarchical/_base.py +1 -2
- skfolio/optimization/cluster/hierarchical/_herc.py +2 -2
- skfolio/optimization/cluster/hierarchical/_hrp.py +2 -2
- skfolio/optimization/convex/__init__.py +2 -0
- skfolio/optimization/convex/_base.py +8 -8
- skfolio/optimization/convex/_distributionally_robust.py +4 -4
- skfolio/optimization/convex/_maximum_diversification.py +5 -5
- skfolio/optimization/convex/_mean_risk.py +5 -6
- skfolio/optimization/convex/_risk_budgeting.py +3 -3
- skfolio/optimization/ensemble/__init__.py +2 -0
- skfolio/optimization/ensemble/_base.py +2 -2
- skfolio/optimization/ensemble/_stacking.py +1 -1
- skfolio/optimization/naive/__init__.py +2 -0
- skfolio/optimization/naive/_naive.py +1 -1
- skfolio/population/__init__.py +2 -0
- skfolio/population/_population.py +34 -7
- skfolio/portfolio/_base.py +42 -8
- skfolio/portfolio/_multi_period_portfolio.py +3 -2
- skfolio/portfolio/_portfolio.py +4 -4
- skfolio/pre_selection/__init__.py +2 -0
- skfolio/pre_selection/_drop_correlated.py +2 -2
- skfolio/pre_selection/_select_complete.py +25 -26
- skfolio/pre_selection/_select_k_extremes.py +2 -2
- skfolio/pre_selection/_select_non_dominated.py +2 -2
- skfolio/pre_selection/_select_non_expiring.py +2 -2
- skfolio/preprocessing/__init__.py +2 -0
- skfolio/preprocessing/_returns.py +2 -2
- skfolio/prior/__init__.py +4 -0
- skfolio/prior/_base.py +2 -2
- skfolio/prior/_black_litterman.py +5 -3
- skfolio/prior/_empirical.py +3 -1
- skfolio/prior/_factor_model.py +8 -4
- skfolio/prior/_synthetic_data.py +239 -0
- skfolio/synthetic_returns/__init__.py +1 -0
- skfolio/typing.py +1 -1
- skfolio/uncertainty_set/__init__.py +2 -0
- skfolio/uncertainty_set/_base.py +2 -2
- skfolio/uncertainty_set/_bootstrap.py +1 -1
- skfolio/uncertainty_set/_empirical.py +1 -1
- skfolio/utils/__init__.py +1 -0
- skfolio/utils/bootstrap.py +2 -2
- skfolio/utils/equations.py +13 -10
- skfolio/utils/sorting.py +2 -2
- skfolio/utils/stats.py +7 -7
- skfolio/utils/tools.py +76 -12
- {skfolio-0.7.0.dist-info → skfolio-0.8.0.dist-info}/METADATA +99 -24
- skfolio-0.8.0.dist-info/RECORD +120 -0
- {skfolio-0.7.0.dist-info → skfolio-0.8.0.dist-info}/WHEEL +1 -1
- skfolio-0.7.0.dist-info/RECORD +0 -95
- {skfolio-0.7.0.dist-info → skfolio-0.8.0.dist-info/licenses}/LICENSE +0 -0
- {skfolio-0.7.0.dist-info → skfolio-0.8.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: skfolio
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.0
|
4
4
|
Summary: Portfolio optimization built on top of scikit-learn
|
5
5
|
Author-email: Hugo Delatte <delatte.hugo@gmail.com>
|
6
6
|
Maintainer-email: Hugo Delatte <delatte.hugo@gmail.com>, Matteo Manzi <matteomanzi09@gmail.com>
|
@@ -57,20 +57,21 @@ Requires-Python: >=3.10
|
|
57
57
|
Description-Content-Type: text/x-rst
|
58
58
|
License-File: LICENSE
|
59
59
|
Requires-Dist: numpy>=1.23.4
|
60
|
-
Requires-Dist: scipy>=1.
|
60
|
+
Requires-Dist: scipy>=1.15.2
|
61
61
|
Requires-Dist: pandas>=1.4.1
|
62
|
-
Requires-Dist: cvxpy>=1.
|
62
|
+
Requires-Dist: cvxpy-base>=1.5.0
|
63
|
+
Requires-Dist: clarabel>=0.9.0
|
63
64
|
Requires-Dist: scikit-learn>=1.6.0
|
64
65
|
Requires-Dist: joblib>=1.3.2
|
65
66
|
Requires-Dist: plotly>=5.22.0
|
66
67
|
Provides-Extra: dev
|
67
|
-
Requires-Dist:
|
68
|
-
Requires-Dist: pytest
|
69
|
-
Requires-Dist: pytest-cov
|
70
|
-
Requires-Dist: ruff
|
71
|
-
Requires-Dist: pre-commit
|
68
|
+
Requires-Dist: PySCIPOpt; extra == "dev"
|
69
|
+
Requires-Dist: pytest; extra == "dev"
|
70
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
71
|
+
Requires-Dist: ruff; extra == "dev"
|
72
|
+
Requires-Dist: pre-commit; extra == "dev"
|
72
73
|
Provides-Extra: docs
|
73
|
-
Requires-Dist:
|
74
|
+
Requires-Dist: PySCIPOpt; extra == "docs"
|
74
75
|
Requires-Dist: Sphinx; extra == "docs"
|
75
76
|
Requires-Dist: sphinx-gallery; extra == "docs"
|
76
77
|
Requires-Dist: sphinx-design; extra == "docs"
|
@@ -87,6 +88,7 @@ Requires-Dist: sphinx-sitemap; extra == "docs"
|
|
87
88
|
Requires-Dist: jupyterlite-sphinx; extra == "docs"
|
88
89
|
Requires-Dist: jupyterlite-pyodide-kernel; extra == "docs"
|
89
90
|
Requires-Dist: nbformat; extra == "docs"
|
91
|
+
Dynamic: license-file
|
90
92
|
|
91
93
|
.. -*- mode: rst -*-
|
92
94
|
|
@@ -129,8 +131,9 @@ Requires-Dist: nbformat; extra == "docs"
|
|
129
131
|
.. |NumpyMinVersion| replace:: 1.23.4
|
130
132
|
.. |ScipyMinVersion| replace:: 1.8.0
|
131
133
|
.. |PandasMinVersion| replace:: 1.4.1
|
132
|
-
.. |
|
133
|
-
.. |
|
134
|
+
.. |CvxpyBaseMinVersion| replace:: 1.5.0
|
135
|
+
.. |ClarabelMinVersion| replace:: 0.9.0
|
136
|
+
.. |SklearnMinVersion| replace:: 1.6.0
|
134
137
|
.. |JoblibMinVersion| replace:: 1.3.2
|
135
138
|
.. |PlotlyMinVersion| replace:: 5.22.0
|
136
139
|
|
@@ -148,7 +151,7 @@ Requires-Dist: nbformat; extra == "docs"
|
|
148
151
|
It offers a unified interface and tools compatible with scikit-learn to build, fine-tune,
|
149
152
|
and cross-validate portfolio models.
|
150
153
|
|
151
|
-
It is distributed under the open
|
154
|
+
It is distributed under the open-source 3-Clause BSD license.
|
152
155
|
|
153
156
|
.. image:: https://raw.githubusercontent.com/skfolio/skfolio/master/docs/_static/expo.jpg
|
154
157
|
:target: https://skfolio.org/auto_examples/
|
@@ -180,7 +183,8 @@ Dependencies
|
|
180
183
|
- numpy (>= |NumpyMinVersion|)
|
181
184
|
- scipy (>= |ScipyMinVersion|)
|
182
185
|
- pandas (>= |PandasMinVersion|)
|
183
|
-
- cvxpy (>= |
|
186
|
+
- cvxpy-base (>= |CvxpyBaseMinVersion|)
|
187
|
+
- clarabel (>= |ClarabelMinVersion|)
|
184
188
|
- scikit-learn (>= |SklearnMinVersion|)
|
185
189
|
- joblib (>= |JoblibMinVersion|)
|
186
190
|
- plotly (>= |PlotlyMinVersion|)
|
@@ -194,7 +198,7 @@ Unfortunately, it faces a number of shortcomings, including high sensitivity to
|
|
194
198
|
input parameters (expected returns and covariance), weight concentration, high turnover,
|
195
199
|
and poor out-of-sample performance.
|
196
200
|
|
197
|
-
It is well
|
201
|
+
It is well-known that naive allocation (1/N, inverse-vol, etc.) tends to outperform
|
198
202
|
MVO out-of-sample (DeMiguel, 2007).
|
199
203
|
|
200
204
|
Numerous approaches have been developed to alleviate these shortcomings (shrinkage,
|
@@ -203,10 +207,10 @@ approaches, coherent risk measures, left-tail risk optimization, distributionall
|
|
203
207
|
optimization, factor model, risk-parity, hierarchical clustering, ensemble methods,
|
204
208
|
pre-selection, etc.).
|
205
209
|
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
+
Given the large number of methods, and the fact that they can be combined, there is a
|
211
|
+
need for a unified framework with a machine-learning approach to perform model
|
212
|
+
selection, validation, and parameter tuning while mitigating the risk of data leakage
|
213
|
+
and overfitting.
|
210
214
|
|
211
215
|
This framework is built on scikit-learn's API.
|
212
216
|
|
@@ -256,10 +260,27 @@ Available models
|
|
256
260
|
* Distance Correlation
|
257
261
|
* Variation of Information
|
258
262
|
|
263
|
+
* Distribution Estimator:
|
264
|
+
* Univariate:
|
265
|
+
* Gaussian
|
266
|
+
* Student's t
|
267
|
+
* Johnson Su
|
268
|
+
* Normal Inverse Gaussian
|
269
|
+
* Bivariate Copula
|
270
|
+
* Gaussian Copula
|
271
|
+
* Student's t Copula
|
272
|
+
* Clayton Copula
|
273
|
+
* Gumbel Copula
|
274
|
+
* Joe Copula
|
275
|
+
* Independent Copula
|
276
|
+
* Multivariate
|
277
|
+
* Vine Copula (Regular, Centered, Clustered, Conditional Sampling)
|
278
|
+
|
259
279
|
* Prior Estimator:
|
260
280
|
* Empirical
|
261
281
|
* Black & Litterman
|
262
282
|
* Factor Model
|
283
|
+
* Synthetic Data (Stress Test, Factor Stress Test)
|
263
284
|
|
264
285
|
* Uncertainty Set Estimator:
|
265
286
|
* On Expected Returns:
|
@@ -267,12 +288,14 @@ Available models
|
|
267
288
|
* Circular Bootstrap
|
268
289
|
* On Covariance:
|
269
290
|
* Empirical
|
270
|
-
* Circular
|
291
|
+
* Circular Bootstrap
|
271
292
|
|
272
293
|
* Pre-Selection Transformer:
|
273
294
|
* Non-Dominated Selection
|
274
295
|
* Select K Extremes (Best or Worst)
|
275
296
|
* Drop Highly Correlated Assets
|
297
|
+
* Select Non-Expiring Assets
|
298
|
+
* Select Complete Assets (handle late inception, delisting, etc.)
|
276
299
|
|
277
300
|
* Cross-Validation and Model Selection:
|
278
301
|
* Compatible with all `sklearn` methods (KFold, etc.)
|
@@ -317,6 +340,8 @@ Available models
|
|
317
340
|
* Budget Constraints
|
318
341
|
* Tracking Error Constraints
|
319
342
|
* Turnover Constraints
|
343
|
+
* Cardinality and Group Cardinality Constraints
|
344
|
+
* Threshold (Long and Short) Constraints
|
320
345
|
|
321
346
|
Quickstart
|
322
347
|
~~~~~~~~~~
|
@@ -339,6 +364,7 @@ Imports
|
|
339
364
|
|
340
365
|
from skfolio import RatioMeasure, RiskMeasure
|
341
366
|
from skfolio.datasets import load_factors_dataset, load_sp500_dataset
|
367
|
+
from skfolio.distribution import VineCopula
|
342
368
|
from skfolio.model_selection import (
|
343
369
|
CombinatorialPurgedCV,
|
344
370
|
WalkForward,
|
@@ -359,7 +385,7 @@ Imports
|
|
359
385
|
)
|
360
386
|
from skfolio.pre_selection import SelectKExtremes
|
361
387
|
from skfolio.preprocessing import prices_to_returns
|
362
|
-
from skfolio.prior import BlackLitterman, EmpiricalPrior, FactorModel
|
388
|
+
from skfolio.prior import BlackLitterman, EmpiricalPrior, FactorModel, SyntheticData
|
363
389
|
from skfolio.uncertainty_set import BootstrapMuUncertaintySet
|
364
390
|
|
365
391
|
Load Dataset
|
@@ -630,12 +656,61 @@ Combinatorial Purged Cross-Validation
|
|
630
656
|
print(population.summary())
|
631
657
|
|
632
658
|
|
659
|
+
Minimum CVaR Optimization on Synthetic Returns
|
660
|
+
----------------------------------------------
|
661
|
+
.. code-block:: python
|
662
|
+
|
663
|
+
vine = VineCopula(log_transform=True, n_jobs=-1)
|
664
|
+
prior = =SyntheticData(distribution_estimator=vine, n_samples=2000)
|
665
|
+
model = MeanRisk(risk_measure=RiskMeasure.CVAR, prior_estimator=prior)
|
666
|
+
model.fit(X)
|
667
|
+
print(model.weights_)
|
668
|
+
|
669
|
+
|
670
|
+
Stress Test
|
671
|
+
-----------
|
672
|
+
.. code-block:: python
|
673
|
+
|
674
|
+
vine = VineCopula(log_transform=True, central_assets=["BAC"] n_jobs=-1)
|
675
|
+
vine.fit(X)
|
676
|
+
X_stressed = vine.sample(n_samples=10_000, conditioning = {"BAC": -0.2})
|
677
|
+
ptf_stressed = model.predict(X_stressed)
|
678
|
+
|
679
|
+
|
680
|
+
Minimum CVaR Optimization on Synthetic Factors
|
681
|
+
----------------------------------------------
|
682
|
+
.. code-block:: python
|
683
|
+
|
684
|
+
vine = VineCopula(central_assets=["QUAL"], log_transform=True, n_jobs=-1)
|
685
|
+
factor_prior = SyntheticData(
|
686
|
+
distribution_estimator=vine,
|
687
|
+
n_samples=10_000,
|
688
|
+
sample_args=dict(conditioning={"QUAL": -0.2}),
|
689
|
+
)
|
690
|
+
factor_model = FactorModel(factor_prior_estimator=factor_prior)
|
691
|
+
model = MeanRisk(risk_measure=RiskMeasure.CVAR, prior_estimator=factor_model)
|
692
|
+
model.fit(X, y)
|
693
|
+
print(model.weights_)
|
694
|
+
|
695
|
+
|
696
|
+
Factor Stress Test
|
697
|
+
------------------
|
698
|
+
.. code-block:: python
|
699
|
+
|
700
|
+
factor_model.set_params(factor_prior_estimator__sample_args=dict(
|
701
|
+
conditioning={"QUAL": -0.5}
|
702
|
+
))
|
703
|
+
factor_model.fit(X,y)
|
704
|
+
stressed_X = factor_model.prior_model_.returns
|
705
|
+
stressed_ptf = model.predict(stressed_X)
|
706
|
+
|
707
|
+
|
633
708
|
Recognition
|
634
709
|
~~~~~~~~~~~
|
635
710
|
|
636
|
-
We would like to thank all contributors
|
637
|
-
scikit-learn and cvxpy,
|
638
|
-
|
711
|
+
We would like to thank all contributors to our direct dependencies, such as
|
712
|
+
scikit-learn and cvxpy, as well as the contributors of the following resources that
|
713
|
+
served as sources of inspiration:
|
639
714
|
|
640
715
|
* PyPortfolioOpt
|
641
716
|
* Riskfolio-Lib
|
@@ -0,0 +1,120 @@
|
|
1
|
+
skfolio/__init__.py,sha256=XdSV1bcfft5pNl5Y_mX8MR0IzjXjRs8uRURp42UGa08,635
|
2
|
+
skfolio/exceptions.py,sha256=omi5qQiEuFDpIoZfQHQxORZRcKYkusmdGPLBJt-Sna0,805
|
3
|
+
skfolio/typing.py,sha256=5wnu_qoGZtCWKu-nHlZ5w3rOKy5CXxGI5ZvzDSR9pLU,1394
|
4
|
+
skfolio/cluster/__init__.py,sha256=ycySaq2MgG3etqNF-pITuYKfYPHYm3-frjFc8PRzMc0,267
|
5
|
+
skfolio/cluster/_hierarchical.py,sha256=PTtr6H4keY6DEVvXyYM24AnNjj72sNaXKjGFEyMXZ5c,12839
|
6
|
+
skfolio/datasets/__init__.py,sha256=hxeG8dQOQWzlsKagxyAp2nX67wj7fAD-UZtv36xzMIE,497
|
7
|
+
skfolio/datasets/_base.py,sha256=n95CwIYEgh4cShFUItph7Prgv5XkndhBZ0OdOIE66Wk,16088
|
8
|
+
skfolio/datasets/data/__init__.py,sha256=XN1VFRn8-YLCbu6avsq21aUA94gN5f0WX0I5riTsNEk,27
|
9
|
+
skfolio/datasets/data/factors_dataset.csv.gz,sha256=brCJlT25DJo40yg1gnUXAakNtvWZZYR_1ksFeN5JcWE,36146
|
10
|
+
skfolio/datasets/data/sp500_dataset.csv.gz,sha256=7iHKwovvsdCnOanOsiGE-ZU5RyaqDP3pohlB0awErA0,426065
|
11
|
+
skfolio/datasets/data/sp500_index.csv.gz,sha256=iUw0QxwoT4aqZKRn4Xbio8m2l8hX65qzUAbC3VXT_fI,41898
|
12
|
+
skfolio/distance/__init__.py,sha256=KFDHNcpzA8Hng0xAs9JyFEkbDRubgeDrQUP4B2ZwYjw,563
|
13
|
+
skfolio/distance/_base.py,sha256=3qqkWfqb3igC6Y7XHwPYir9A2qwi2LjCtLlczMGi6UI,1343
|
14
|
+
skfolio/distance/_distance.py,sha256=-ztyE8oittGfn-ib4-JztAXxeIQ4QLAOj4OX4AJ2G64,19107
|
15
|
+
skfolio/distribution/__init__.py,sha256=A42xmx-VjMSy-An6ZIdhwPLFAoViCaOY7KUQDHgaOAY,1295
|
16
|
+
skfolio/distribution/_base.py,sha256=YEnJsLSO-_NkucUNKSaW9ZTwoORXFj7DWnFrxwaYaco,5665
|
17
|
+
skfolio/distribution/copula/__init__.py,sha256=dKN-BGl5t5EXlVb7Qamkktbj1V098Ocf3J6qNlRssI4,1106
|
18
|
+
skfolio/distribution/copula/_base.py,sha256=1N3I2lFuzm5ge1zG9VZWufIwwMKf8oE1OT_PtVEPyHo,15982
|
19
|
+
skfolio/distribution/copula/_clayton.py,sha256=xat9ZyhV3FbWcDVn6ax6Z8YGuOsHTKGVUXXNxxCqhcQ,18307
|
20
|
+
skfolio/distribution/copula/_gaussian.py,sha256=-OxQdvFEBesozIPofBG_X0j1tDmwlu4i9bpxnV7iqS4,14128
|
21
|
+
skfolio/distribution/copula/_gumbel.py,sha256=KIhyfGyF9jLRKqZo8D5k19k3Wgw9X6hX1o9pVDxzG00,19354
|
22
|
+
skfolio/distribution/copula/_independent.py,sha256=OIqmig7hP-KTCuBi0bsb4fwEkQkaxipYoy1JR1xer6w,6360
|
23
|
+
skfolio/distribution/copula/_joe.py,sha256=kSqPqMyyyNTgPEGSnlOm8drrRqMRhV2fNuJw1daxcMc,21446
|
24
|
+
skfolio/distribution/copula/_selection.py,sha256=JovKO2_Vq9Zq1WFArFTeKXSDVLFJtCRB8qi3N7vhnRM,4438
|
25
|
+
skfolio/distribution/copula/_student_t.py,sha256=Zl5WlmZ5fum2v6CH4VyVPln7Aivo_49Jj5hHcYlNQfU,17821
|
26
|
+
skfolio/distribution/copula/_utils.py,sha256=drMtv71bkwlerR0HJCdNCZTuFSitN5vn33avRGWxj94,16440
|
27
|
+
skfolio/distribution/multivariate/__init__.py,sha256=E9AR0Hh5wWShOTwj62R1RVMkzZpXc5Ams4ppibwhrUY,339
|
28
|
+
skfolio/distribution/multivariate/_base.py,sha256=MV3rhTafPlKdb3wuLbHfhApyV1ll7WmfzdR97Dq8VZw,8716
|
29
|
+
skfolio/distribution/multivariate/_utils.py,sha256=WNL1lzO0Ki5x_yO8p3GRKrXwG4fK99je7sDQ3avyUQ8,19274
|
30
|
+
skfolio/distribution/multivariate/_vine_copula.py,sha256=b545CKAMXUXMaIiI7hQ-P8jHhmZ4hUnGo2F22uWtbac,49756
|
31
|
+
skfolio/distribution/univariate/__init__.py,sha256=m9vZUhZyRUT5IOQRixGPdGci1wtC5ua8RWtHsC8HAlU,628
|
32
|
+
skfolio/distribution/univariate/_base.py,sha256=8oPMOdQi2wHc-UOWG18x_eZ57G_ksQhPM9C0ncYf1Lg,9874
|
33
|
+
skfolio/distribution/univariate/_gaussian.py,sha256=pe8YxTQjvObeVeZD2YXduN5M-k2kNNTy2q0AvYCm1n4,4274
|
34
|
+
skfolio/distribution/univariate/_johnson_su.py,sha256=Dl1WyCmn-sRE4BrckVNGXHz9biDQtXyPq1JXEPKIHBo,4857
|
35
|
+
skfolio/distribution/univariate/_normal_inverse_gaussian.py,sha256=oq5omNUQanFWBGaYSNwf9YDa6c-B1j9ZErq6p96resc,4983
|
36
|
+
skfolio/distribution/univariate/_selection.py,sha256=6KL4gngiLKwaBUpCDX19ABOkMBzZp1YVRnXFrUtppCs,3110
|
37
|
+
skfolio/distribution/univariate/_student_t.py,sha256=GcI4fKp6q5XegfvT_i3AqfWlUMxCq7A5sX6Xsf4pye8,4553
|
38
|
+
skfolio/measures/__init__.py,sha256=lB5xBqEFU-8x-12AA1VdCHaPwYpfwvejRaiYnr8IGYg,1647
|
39
|
+
skfolio/measures/_enums.py,sha256=S6WOT8NHzm-eMHELuOjngIBupCctCdiTA2BaJlWl-4E,8956
|
40
|
+
skfolio/measures/_measures.py,sha256=LmKgSAOXaKGomAcO1FkeypD6tRiEeDLUIh6lySky4vs,16835
|
41
|
+
skfolio/metrics/__init__.py,sha256=ebu5h7Q9X0f3ZZ1VFmAEBPic2sirboKG_zNBHO5abjo,98
|
42
|
+
skfolio/metrics/_scorer.py,sha256=L-qct4cby15a4xC4arSaG5__1mxBCQYeMjlrHBIVnSY,4325
|
43
|
+
skfolio/model_selection/__init__.py,sha256=BT8VCXW7C4bXI2Oam4amTHOcJVlKxLpkcsHjB63pZHQ,524
|
44
|
+
skfolio/model_selection/_combinatorial.py,sha256=XVbZuVA0ePEYpbKiyioQcNULtEEm5KM0Bc_-AvzQTtk,19109
|
45
|
+
skfolio/model_selection/_validation.py,sha256=fM3PnB9O6JrgyEznf4-yvmFLz-z0trOoYSKkMLzWqVc,10051
|
46
|
+
skfolio/model_selection/_walk_forward.py,sha256=Q_RV2Aw4J7nB5UhhrWuWcoYmyxc9CN45yL3vpyfuFGo,15060
|
47
|
+
skfolio/moments/__init__.py,sha256=st8AYX3tHT2ZkqnnMNbS6CiwufvHq6Tl6nHtRVhtlq0,794
|
48
|
+
skfolio/moments/covariance/__init__.py,sha256=twNNLP44sv4-3EgET27UdJ-8wbVgF2cYmIn8DERwFTk,1068
|
49
|
+
skfolio/moments/covariance/_base.py,sha256=vrYW0q1tG-l_uvnRk1TBTlQnamdmMXdJOZutRrRl08M,3986
|
50
|
+
skfolio/moments/covariance/_denoise_covariance.py,sha256=mXjcEYZn9HXVTkiUn4CkKM9Jy27XLOnweInbyu4f-_o,7002
|
51
|
+
skfolio/moments/covariance/_detone_covariance.py,sha256=Yw24UA68mw4yHe_utOD4FpOdWfV8kFXAMCNLZgGLD8c,6109
|
52
|
+
skfolio/moments/covariance/_empirical_covariance.py,sha256=ayIr0yn3oJS_H9LpHNCfHwttSGry3lR6_umXE_nE6tg,3560
|
53
|
+
skfolio/moments/covariance/_ew_covariance.py,sha256=z0-mcnewjKya8uz8JOO9BkS5xkSgTI1sG0ndJVScn1o,3732
|
54
|
+
skfolio/moments/covariance/_gerber_covariance.py,sha256=IHO4wcefrbvTUECrkEEnL_UOQSHNRLTrj6arrDKk73o,5915
|
55
|
+
skfolio/moments/covariance/_graphical_lasso_cv.py,sha256=vCQxDsqxJlNHUAs_ETPPW1y_v_5Zp0ePZC2NkTNmM-s,6555
|
56
|
+
skfolio/moments/covariance/_implied_covariance.py,sha256=ioXg1oThiOAHHZVZh3upPdDVJcCzACe831ypPXlZoM8,17625
|
57
|
+
skfolio/moments/covariance/_ledoit_wolf.py,sha256=bCorMMeQ7137QDKDW_TUzDiC0DdcRAvzRPoKL5EMCX8,4891
|
58
|
+
skfolio/moments/covariance/_oas.py,sha256=V9FAE4-VsiOXpAA5tGilphA32hfPolfzfoI974jLEY4,3700
|
59
|
+
skfolio/moments/covariance/_shrunk_covariance.py,sha256=URJgonaWoiOUQcSrtN1LUrJtdi4tCrwiuNUg-FaDNvE,3111
|
60
|
+
skfolio/moments/expected_returns/__init__.py,sha256=Bi3c4bok3SyktdYeFUs3VepTrtpmDITIk9GXPhIuDc0,504
|
61
|
+
skfolio/moments/expected_returns/_base.py,sha256=Bla1peGBVafIUwOxNuRF5-T84k-QHN8Z2W6mdLoSbzU,887
|
62
|
+
skfolio/moments/expected_returns/_empirical_mu.py,sha256=KLwO_9HCK7H6eiB9JU5EdLWcMqD2Vr7wcSjXONJk1Cg,1879
|
63
|
+
skfolio/moments/expected_returns/_equilibrium_mu.py,sha256=A4zAYZ7ex2Y68YV0HajYDKtnH0luQuKEN4hENEwk4Lk,4423
|
64
|
+
skfolio/moments/expected_returns/_ew_mu.py,sha256=vDOqpTpTY3iaJc9PfMU_dpdfglT1dJ_DuM3pCTpjHpc,2125
|
65
|
+
skfolio/moments/expected_returns/_shrunk_mu.py,sha256=nqypZJweZIf6u3Idz-TLPHiD3h3XzuKgTEQWJHSVnwo,8292
|
66
|
+
skfolio/optimization/__init__.py,sha256=LA4n85e-wVTeRNI-NlTU1ID5FhP3-B410kmsh9268Ho,1049
|
67
|
+
skfolio/optimization/_base.py,sha256=lPVvoV36URnjMUJGOO23QbaFYiuyVA9oRuvk68Dwd7o,5780
|
68
|
+
skfolio/optimization/cluster/__init__.py,sha256=nxsuDxviDbj-YMHhQXIkUEWUoKPhPn10bQ0_nULNUoE,424
|
69
|
+
skfolio/optimization/cluster/_nco.py,sha256=Gbd18HYlwq_MUd9JmytM1-Uqu-GFT8NXb8QWPVgmDxk,16433
|
70
|
+
skfolio/optimization/cluster/hierarchical/__init__.py,sha256=eT1A6YKETKCBEnrUc6pHwyTkDVRcUr8jtdtmN3kdh0c,446
|
71
|
+
skfolio/optimization/cluster/hierarchical/_base.py,sha256=mdplfuwUepui8RWPlySxoviuA0PNIkgn6wSYENNy9H0,16295
|
72
|
+
skfolio/optimization/cluster/hierarchical/_herc.py,sha256=5ZYkoi8ywN89U2xi1lc-3B8TPQjLlxbUmOSB3PR_nKA,20414
|
73
|
+
skfolio/optimization/cluster/hierarchical/_hrp.py,sha256=06kch9QkthV5yB8RNB_5Xz-IUuNq-fcZPjz99Mz5otg,18171
|
74
|
+
skfolio/optimization/convex/__init__.py,sha256=q1Q2p7HcnmbQlBIA0SXm0TwDGxl7hRc0JhF1o01lFSg,605
|
75
|
+
skfolio/optimization/convex/_base.py,sha256=mUTXVM6bq5cvlieAl6TXNGd6BNIqBajoAiDL28fPx9o,89455
|
76
|
+
skfolio/optimization/convex/_distributionally_robust.py,sha256=4iWfEuJGuBawVGU5X1-QHVMMh9hBnMtou2Uh5hRdXeA,17958
|
77
|
+
skfolio/optimization/convex/_maximum_diversification.py,sha256=a8nDecN6jTR_bOFKBsenI4G2kNu5t98y5ALY78lNrAU,19657
|
78
|
+
skfolio/optimization/convex/_mean_risk.py,sha256=mM5KMCxwAf1dT6JTxJuuQfvvk63hMQg5GD3LumQkfjQ,49534
|
79
|
+
skfolio/optimization/convex/_risk_budgeting.py,sha256=xtRg3CGmasi-ebx7e5XevHJs3n9PpccaZR7Z7loyKDc,23653
|
80
|
+
skfolio/optimization/ensemble/__init__.py,sha256=IJhsX8f-6wclc9a6Fd8yAQvZKxtxq4Qf7AC2CLryHrU,195
|
81
|
+
skfolio/optimization/ensemble/_base.py,sha256=e0dWCEIYnho3HU2KGGS9UHQdycdVuqMcTe7hi0LihjQ,3416
|
82
|
+
skfolio/optimization/ensemble/_stacking.py,sha256=DaswFVBTghP10vHGESn6aLT7C9wgp-D8NuXGtpdZcwE,14192
|
83
|
+
skfolio/optimization/naive/__init__.py,sha256=1QKgOuA6DoqKVOsJxWKogaGPyOir6ln-aQ28PTAbtJs,181
|
84
|
+
skfolio/optimization/naive/_naive.py,sha256=w5lDVpn5YeO6NN5dRzSRvj-V6GpfLogOW7FVxevwZl8,6453
|
85
|
+
skfolio/population/__init__.py,sha256=ehKwWhDJCifjhEL-QezVR0xYjzRTeyHbrEMbfWjF9cU,106
|
86
|
+
skfolio/population/_population.py,sha256=jmfy759zm5Z0ReRBaHMHCaPHEOf8AFxqXVzYrNhaVIw,31354
|
87
|
+
skfolio/portfolio/__init__.py,sha256=YeDSH0ZdyE-lcbDqpNw9IOltURtoM-ewAzzcec44Q5Q,586
|
88
|
+
skfolio/portfolio/_base.py,sha256=V81HUQ2CWmohGOeNip1dPESGnmRKQk8eDAthjkvVFhQ,40541
|
89
|
+
skfolio/portfolio/_multi_period_portfolio.py,sha256=9z71aZL2GrV6rQ_EkIyPkK-mJ9N2ZLZCIinSScfRgfw,24412
|
90
|
+
skfolio/portfolio/_portfolio.py,sha256=o1e1KNZAuxlC8y3zTIcaW7c2jk_LlEBCzEF8FRJht20,32791
|
91
|
+
skfolio/pre_selection/__init__.py,sha256=3hqxwd8nAa1dBna5MrE1P5JPrM-OkSvXGyhbMq7ZKIk,511
|
92
|
+
skfolio/pre_selection/_drop_correlated.py,sha256=4-PSd8R20Rcdyc8Zzcy9B2eRPEtaEkM3YXi74YKF-Pk,3839
|
93
|
+
skfolio/pre_selection/_select_complete.py,sha256=2nEvcjROMJzhAHMCHADeAiCws_tc-BMtndIkjRexL84,3902
|
94
|
+
skfolio/pre_selection/_select_k_extremes.py,sha256=nMugK88igmscribCw_I1UnjE_O7cuIjrJF8AGuVTfiA,3082
|
95
|
+
skfolio/pre_selection/_select_non_dominated.py,sha256=Auv7G8E1QNO96heb35oBWmFLd68LlVDRgSpcg7wpv5A,6004
|
96
|
+
skfolio/pre_selection/_select_non_expiring.py,sha256=hVXLNw5KBU7WxOI6v4feZ9lJaVIgl-CBhW80T9-ZUac,5105
|
97
|
+
skfolio/preprocessing/__init__.py,sha256=94jMyP_E7FlwQVE8D_bXDi8KyfAA2xPHTDvYOi6zf_g,123
|
98
|
+
skfolio/preprocessing/_returns.py,sha256=6G5qJIVHGnIoeBNAqpJTB-569g9NeXVIyrz033bK5Gk,4576
|
99
|
+
skfolio/prior/__init__.py,sha256=daUO3ha87Nu0ixJci33dR1dKgoYC6-1Nf3AUoaskE5o,544
|
100
|
+
skfolio/prior/_base.py,sha256=Py3Ip3mDhaDyBVWQy9Mz7ztv3RkovVC58gw4rCcC-jU,1958
|
101
|
+
skfolio/prior/_black_litterman.py,sha256=oMNYNyDSBp8Uygp0EvQissjNKS41GMLCVzITUqA0HeY,10470
|
102
|
+
skfolio/prior/_empirical.py,sha256=jDWgNhCfqOFVbVBphACZsqpK47OPOKGUCnOVsgmdqXI,7324
|
103
|
+
skfolio/prior/_factor_model.py,sha256=GhilLpNu8UdPrj5vb63zKJ9WWnt79k3SpNf6ULqZ8Bk,11571
|
104
|
+
skfolio/prior/_synthetic_data.py,sha256=XhavOTbbwBtO1suoA4pfZnm5YAdlykb07NQvvqPpRxo,8551
|
105
|
+
skfolio/synthetic_returns/__init__.py,sha256=-dnmFSmrTJcsMmrwIxPCbqENbx6gTuWAm_cx7nQHpns,29
|
106
|
+
skfolio/uncertainty_set/__init__.py,sha256=SHbOq0ip3vuwEK9G4pzz0GncDbGsHw7ywF9tPnkUrZ8,648
|
107
|
+
skfolio/uncertainty_set/_base.py,sha256=R6qH8Zg5Ti3Qny-guL4Js8rY9JhpF8jMwV_w9HCbgWI,4307
|
108
|
+
skfolio/uncertainty_set/_bootstrap.py,sha256=tDnUvhTtl0HWu-xL6MWZZZyWs4Y06PKQ5xPDiOU7RE4,11265
|
109
|
+
skfolio/uncertainty_set/_empirical.py,sha256=t9_V23gH1eJ0jaASQcus-QOSATAr9HKVW2hjHMNYjO0,9380
|
110
|
+
skfolio/utils/__init__.py,sha256=bC6-MsCVF7xKTr48z7OzJJUeWvqAB7BiHeNTiKsme70,20
|
111
|
+
skfolio/utils/bootstrap.py,sha256=6BN_9CgfbeImBSNEE0dF52FRGuQT41HcQXeHPLwFqJc,3565
|
112
|
+
skfolio/utils/equations.py,sha256=yj6-TReoPq3YaUQyAx-t4wZNbODON2T4TyA82z2SnkU,15577
|
113
|
+
skfolio/utils/sorting.py,sha256=F7gfIBfnulfDUiqvzrlR-pba4PPLJT6NH7-5s4sdRhw,3521
|
114
|
+
skfolio/utils/stats.py,sha256=glVHo7rjwy06dl5kkULLOADMrEkVJcfXXAz-1qmYQL4,17005
|
115
|
+
skfolio/utils/tools.py,sha256=sGJFiqc60TqXyaWoH7JdsbaFYj_bvwq3hHIk6FxDC3U,22994
|
116
|
+
skfolio-0.8.0.dist-info/licenses/LICENSE,sha256=F6Gi-ZJX5BlVzYK8R9NcvAkAsKa7KO29xB1OScbrH6Q,1526
|
117
|
+
skfolio-0.8.0.dist-info/METADATA,sha256=2I3oPRJjRLU5M_KQRaAx9xmrcARPZbaMuE8qu2RdSAE,22383
|
118
|
+
skfolio-0.8.0.dist-info/WHEEL,sha256=1tXe9gY0PYatrMPMDd6jXqjfpz_B-Wqm32CPfRC58XU,91
|
119
|
+
skfolio-0.8.0.dist-info/top_level.txt,sha256=NXEaoS9Ms7t32gxkb867nV0OKlU0KmssL7IJBVo0fJs,8
|
120
|
+
skfolio-0.8.0.dist-info/RECORD,,
|
skfolio-0.7.0.dist-info/RECORD
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
skfolio/__init__.py,sha256=FbnqIQGdiw2fg-jy2N--TnXGknEahle2zj7y47bxQkY,618
|
2
|
-
skfolio/exceptions.py,sha256=poWfE5geF121AR9QqrG781KebGneIZ028161tV0YfS0,784
|
3
|
-
skfolio/typing.py,sha256=SqYkUNbeq_go0pJaoIAFE-MNvHtHSGLzhNrhrRxkpfM,1378
|
4
|
-
skfolio/cluster/__init__.py,sha256=5yp3qkvBoN0qNDmmPahjPMegc0oQXCJ1FPxwgEqJpiY,251
|
5
|
-
skfolio/cluster/_hierarchical.py,sha256=i7ckFpKdxymzrqXZBc0AZj-Qcz65JuUoJQ7pYWfAo7E,12823
|
6
|
-
skfolio/datasets/__init__.py,sha256=0tuS8CR26EUBqBFjyxgZ2L5PgZDy3AjK3qh4GV-fB1U,481
|
7
|
-
skfolio/datasets/_base.py,sha256=ECeHHlNOb2U5hEE3kaK8yQtegcVYiuGTjMLJ3Dop0Ks,16073
|
8
|
-
skfolio/datasets/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
skfolio/datasets/data/factors_dataset.csv.gz,sha256=brCJlT25DJo40yg1gnUXAakNtvWZZYR_1ksFeN5JcWE,36146
|
10
|
-
skfolio/datasets/data/sp500_dataset.csv.gz,sha256=7iHKwovvsdCnOanOsiGE-ZU5RyaqDP3pohlB0awErA0,426065
|
11
|
-
skfolio/datasets/data/sp500_index.csv.gz,sha256=iUw0QxwoT4aqZKRn4Xbio8m2l8hX65qzUAbC3VXT_fI,41898
|
12
|
-
skfolio/distance/__init__.py,sha256=MnNOJOQTdt3e-MH_uXMaaogWzF7Ubymvc8I0Ks7VElU,547
|
13
|
-
skfolio/distance/_base.py,sha256=jBgRk6lZrP1woSI9541fTfxBBkp4WCTLlRPmWcmA3j4,1326
|
14
|
-
skfolio/distance/_distance.py,sha256=0x77Yf_Tukb2l8J1VmvPT3YWJxVzGQo4u5rNjjo9-1M,19097
|
15
|
-
skfolio/measures/__init__.py,sha256=b4hcaWXTzgQjF80ex3G1YJurfjLiii-ggrqJCIXsJTE,1631
|
16
|
-
skfolio/measures/_enums.py,sha256=NJcngwg9b2JMMiekwkWU9POfnDvgfUgtYtyV2VSFDVM,8934
|
17
|
-
skfolio/measures/_measures.py,sha256=Z7XHSyM9xfecDgOqm-lJQJhvZxasF018-oFS4QjC4g0,16829
|
18
|
-
skfolio/metrics/__init__.py,sha256=MomHJ5_bgjq4qUwGS2bfhNmG_ld0oQ4wK6y0Yy_Eonc,75
|
19
|
-
skfolio/metrics/_scorer.py,sha256=h1VuZk-zzn4rIChHl9FvM7RxqVT3b-jR1CEB-cr9F2s,4306
|
20
|
-
skfolio/model_selection/__init__.py,sha256=Hl90pxVZjxrEFrI8DCGmoR0CBo1rMGw1z-cR2scKyls,507
|
21
|
-
skfolio/model_selection/_combinatorial.py,sha256=uf5DzklgyLhfMKm0kWHXl2QLlUOAoiaxNb7cafrHVIg,19062
|
22
|
-
skfolio/model_selection/_validation.py,sha256=3eFYzPejjDZljc33vRehDuBQTEKCkrj-mZihMVuGA4s,10034
|
23
|
-
skfolio/model_selection/_walk_forward.py,sha256=T57HhdFGjG31mAufujHQuRK1uKfAdkiBx9eucQZ-WG0,15043
|
24
|
-
skfolio/moments/__init__.py,sha256=st8AYX3tHT2ZkqnnMNbS6CiwufvHq6Tl6nHtRVhtlq0,794
|
25
|
-
skfolio/moments/covariance/__init__.py,sha256=twNNLP44sv4-3EgET27UdJ-8wbVgF2cYmIn8DERwFTk,1068
|
26
|
-
skfolio/moments/covariance/_base.py,sha256=98o4YDFcOZ4X4hRFlrJAwWifULGzisEyRZaxFYW1qeA,3970
|
27
|
-
skfolio/moments/covariance/_denoise_covariance.py,sha256=kp90Jey_0NMHqZObhadO0FymF1TXBO6J8gvXoDbv9dE,6986
|
28
|
-
skfolio/moments/covariance/_detone_covariance.py,sha256=4hh-wvxLdNb61PJkF2_AHb5jDZogZiFRHtUoWuXywWw,6093
|
29
|
-
skfolio/moments/covariance/_empirical_covariance.py,sha256=mndfugw9Yp1Kus8rPAYcAIUcDT-6yX7By4gHhxyj6iI,3544
|
30
|
-
skfolio/moments/covariance/_ew_covariance.py,sha256=wqvErW0OfvWWSrz1-g_M5EdfA4ludAD3wbn-y3ec-gY,3716
|
31
|
-
skfolio/moments/covariance/_gerber_covariance.py,sha256=B_H02D7kWuUGaLUB9E39Kxh4f9mQESsoFJvuvKNJ0Jk,5899
|
32
|
-
skfolio/moments/covariance/_graphical_lasso_cv.py,sha256=_6WQ1sjYJRG8XDq8zb5YIPtDhpb8CmLhLBlfewBvqjM,6539
|
33
|
-
skfolio/moments/covariance/_implied_covariance.py,sha256=dD-LT7vXYs3-GGgxkQon3xCVLmA8zUuWIaExqY4vtXA,17736
|
34
|
-
skfolio/moments/covariance/_ledoit_wolf.py,sha256=iV92TpAopOAgQwa4zk7NF1rYdXkgm3uXn5ZZpbcMss0,4875
|
35
|
-
skfolio/moments/covariance/_oas.py,sha256=ru8BNz7vQU75ARCuUbtJstmR2fy2fiD9OXLDlztUm5g,3684
|
36
|
-
skfolio/moments/covariance/_shrunk_covariance.py,sha256=OOUahkiSdU3vFOb8i0iHtn8WU0AHl7o9pf8pFkG6Lv4,3095
|
37
|
-
skfolio/moments/expected_returns/__init__.py,sha256=Bi3c4bok3SyktdYeFUs3VepTrtpmDITIk9GXPhIuDc0,504
|
38
|
-
skfolio/moments/expected_returns/_base.py,sha256=xk9mzi48uCOHaMTGQBMr3FU7Ai_shxYhmGeOsVwjv9Q,871
|
39
|
-
skfolio/moments/expected_returns/_empirical_mu.py,sha256=Gg1t4pEkVXGzCTXkATc5G1riMmIcMGqvPnIl2vnYF2k,1863
|
40
|
-
skfolio/moments/expected_returns/_equilibrium_mu.py,sha256=x35nIc4aoLledFmFmKY00d5jesx8xfLU2Udh4JQIkEg,4407
|
41
|
-
skfolio/moments/expected_returns/_ew_mu.py,sha256=hMjv9XJYftQ9X7RiEQWwAGZktPPFWc0_FFDEFhqC-fI,2109
|
42
|
-
skfolio/moments/expected_returns/_shrunk_mu.py,sha256=UbLM2B3nwa2ndLR5Or1yetnj2dCAzKxqpr34JwXfvmo,8275
|
43
|
-
skfolio/optimization/__init__.py,sha256=dx5S-xSsISCXO9s64jjcDSqSsUl6TVAaIICWOc8aHK4,1021
|
44
|
-
skfolio/optimization/_base.py,sha256=LoRONJP70AwbFpdgqVS_g145pCx0JGkazjWvkQzT_iM,5748
|
45
|
-
skfolio/optimization/cluster/__init__.py,sha256=5Ek5dlLq9TqoLNHJad3EpBb35csuV-ilcoaKnc73lQc,388
|
46
|
-
skfolio/optimization/cluster/_nco.py,sha256=UQfWEdYVPU6cd-WBlp9uf44zDzpTrXDIvH82k5GOdh4,16413
|
47
|
-
skfolio/optimization/cluster/hierarchical/__init__.py,sha256=hZ6GzND_uGO3_derqt3wkOJ-jTtOs_x8Ifgo173EDxw,405
|
48
|
-
skfolio/optimization/cluster/hierarchical/_base.py,sha256=l8rJHCH_79FOPdDL2I0dmAWcVWnNkcXHtzt0U-L7BN8,16280
|
49
|
-
skfolio/optimization/cluster/hierarchical/_herc.py,sha256=fFUk-NEbP7ltjeiYQwzmVvXoVYYjd3JY_RjHoWVq0lw,20401
|
50
|
-
skfolio/optimization/cluster/hierarchical/_hrp.py,sha256=wUeTIwQxhV5yhqZ4UIr-61rgttTP7fPh91GtMaCNjPc,18158
|
51
|
-
skfolio/optimization/convex/__init__.py,sha256=mii3YiVwzAjnTMpJNK44jHevZXrfFxB-4z-3ZJP9nSc,570
|
52
|
-
skfolio/optimization/convex/_base.py,sha256=9-0aZ_nzU5F6CkxhjK-VTvyGz96xyFVuRG7lWRl_3i4,89430
|
53
|
-
skfolio/optimization/convex/_distributionally_robust.py,sha256=32jVUn2PG1agwuTSfj9QlP9GyQo_26sJcIwSqv9zy2I,17933
|
54
|
-
skfolio/optimization/convex/_maximum_diversification.py,sha256=T3-O4U6irJ7iU9IWzKWr5K4aHC8JxNyF6JW_IckVezM,19631
|
55
|
-
skfolio/optimization/convex/_mean_risk.py,sha256=77Dhe9xN6mSwgkXvXen5pySX-uHo3rOhPvpSQOd8l_Q,49509
|
56
|
-
skfolio/optimization/convex/_risk_budgeting.py,sha256=Lt13xD41PEMXjxa1yjnaIe7nEZ_bnUqeT3MLiUCfTWI,23631
|
57
|
-
skfolio/optimization/ensemble/__init__.py,sha256=8TXxcxH2_gG3C1xtgQj9OHHr0Le8lhdejtlURL6T3ZY,158
|
58
|
-
skfolio/optimization/ensemble/_base.py,sha256=GaNDQu6ivosYuwMrb-b0PhToCsNrmhSYyXkxeM8W4rU,3399
|
59
|
-
skfolio/optimization/ensemble/_stacking.py,sha256=Y79cHEOBJbtMgkKbgPKfgL6H9qYHi4VDm0JR5ugVwr4,14176
|
60
|
-
skfolio/optimization/naive/__init__.py,sha256=LNmqRIkGf4RLaOGLt2ZB7SHnBBraxxn0WbTkDQGCxd0,147
|
61
|
-
skfolio/optimization/naive/_naive.py,sha256=tQG6XqQKfWnbixjwtUiGNivGXuTPAYErkJMYl-UPYxQ,6437
|
62
|
-
skfolio/population/__init__.py,sha256=rsPPMUv95aTK7vmpPeQwF8NzFuBwk6RDo5g4HNaPzNM,80
|
63
|
-
skfolio/population/_population.py,sha256=ej45tdk_CcMlNToCsx2VUk2YRktK3k4cRczGBpjlnDE,30427
|
64
|
-
skfolio/portfolio/__init__.py,sha256=YeDSH0ZdyE-lcbDqpNw9IOltURtoM-ewAzzcec44Q5Q,586
|
65
|
-
skfolio/portfolio/_base.py,sha256=6HPFbCUve11lAhyD3KanDrlLjwzhVp6tIBy03XGBAGs,39613
|
66
|
-
skfolio/portfolio/_multi_period_portfolio.py,sha256=K2JfEwlPD9iGO58lOdk7WUbWuXZDWw2prPT5T7pOdto,24387
|
67
|
-
skfolio/portfolio/_portfolio.py,sha256=MoVuCM8rQnlzI2SvKmu1EDrNJfFFZRIyyhrZuNSdou0,32778
|
68
|
-
skfolio/pre_selection/__init__.py,sha256=gVrGZYwuQ--AZGlIZ2ddXst3n_wJluEUBXpysOH5DM0,482
|
69
|
-
skfolio/pre_selection/_drop_correlated.py,sha256=dgDl4YCHAC1lECSzuQGjI6rLoPNxvJ5bhtmwqduZH8Y,3822
|
70
|
-
skfolio/pre_selection/_select_complete.py,sha256=5xgy1c3jSXQHRIwWk1ZSuRw36WeEVIQNy55qCIl9nJY,3978
|
71
|
-
skfolio/pre_selection/_select_k_extremes.py,sha256=FSpvYN5vSGqRREFxceQiRjgGl50lJodpYJV7u-d3esQ,3065
|
72
|
-
skfolio/pre_selection/_select_non_dominated.py,sha256=q5kae1tpMrcbgKfkPQMy0RWaXknnWI0eJ5Ne-h9VKE8,5987
|
73
|
-
skfolio/pre_selection/_select_non_expiring.py,sha256=asD4xK83je4oWvB2ISu_HeRaDJjJ6pq88etr7CPkwPs,5088
|
74
|
-
skfolio/preprocessing/__init__.py,sha256=15A1bzfPsbfxxXgGP1gstf4R0E_347Wn18z5W5jH-hk,94
|
75
|
-
skfolio/preprocessing/_returns.py,sha256=6mdNi7Dun5eNK4LdqKAxP4CCZEVfAEz40HXVrOiAaLA,4561
|
76
|
-
skfolio/prior/__init__.py,sha256=ajpcpYe6qgnjoPE5Q3ofr4ckQ2WrBxUapED5VV0ShbA,446
|
77
|
-
skfolio/prior/_base.py,sha256=u9GLCKJl-Txiem5rIO-qkH3VIyem3taD6T9kMzsYPRY,1941
|
78
|
-
skfolio/prior/_black_litterman.py,sha256=rs0GKbVbDGG-Wdrfb8LVUqq4BE_j-DDLoPsC8sGQvBk,10390
|
79
|
-
skfolio/prior/_empirical.py,sha256=sJkqb60XRt_VsVWTrqDgdhfRn0MMOpmLbFeBcEUGEVs,7250
|
80
|
-
skfolio/prior/_factor_model.py,sha256=HiR6JdmusAB1RbjOGjFQgQaTCp_ctzrL5IzUCxgqGKA,11354
|
81
|
-
skfolio/uncertainty_set/__init__.py,sha256=NhGmOhrmIgAA5DwPs0y48RQb-pVrfkdRRIlPgQjPvJc,617
|
82
|
-
skfolio/uncertainty_set/_base.py,sha256=b2T0r8brV8h8gt96GcArFTEFNg3vKwN1qPmPN6QkdeU,4290
|
83
|
-
skfolio/uncertainty_set/_bootstrap.py,sha256=BRD8LhGKULkqqCBjLqU1EtCAMBkLJKEXJygQT6WsaAY,11249
|
84
|
-
skfolio/uncertainty_set/_empirical.py,sha256=ACqMVTBKibJm6E3IP4TOi3MYsxKMhiEoix5D_fp9X-w,9364
|
85
|
-
skfolio/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
86
|
-
skfolio/utils/bootstrap.py,sha256=3zY2kO_GQURKEcQMCasJOSByde9Mt2IAi3KJH0_a4mk,3550
|
87
|
-
skfolio/utils/equations.py,sha256=9XFcRB6_UuxlAR-dWwf1XPxAHO9p5DfcC-bF5onr7Ws,15539
|
88
|
-
skfolio/utils/sorting.py,sha256=lSjMvH2L-sSj-06B3MlwBrH1rtjCeGEe4hG894W7TE0,3504
|
89
|
-
skfolio/utils/stats.py,sha256=OoePNjqBNGKGJzHTqzG9-i8JXVJcx7k-qCVCE9TL-pY,16995
|
90
|
-
skfolio/utils/tools.py,sha256=m31oruGPMMTf5XYm3BruXyv1dv6I7rvhCpEVWUcusdE,20925
|
91
|
-
skfolio-0.7.0.dist-info/LICENSE,sha256=F6Gi-ZJX5BlVzYK8R9NcvAkAsKa7KO29xB1OScbrH6Q,1526
|
92
|
-
skfolio-0.7.0.dist-info/METADATA,sha256=uCACwU4Q--zy8DpkNlAANtkdrDQWTWEDBjfzpfD12U4,20109
|
93
|
-
skfolio-0.7.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
94
|
-
skfolio-0.7.0.dist-info/top_level.txt,sha256=NXEaoS9Ms7t32gxkb867nV0OKlU0KmssL7IJBVo0fJs,8
|
95
|
-
skfolio-0.7.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|