skfolio 0.10.1__py3-none-any.whl → 0.10.2__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.
@@ -191,6 +191,7 @@ class EmpiricalPrior(BasePrior):
191
191
  # horizon
192
192
  mu = np.exp(mu + 0.5 * np.diag(covariance))
193
193
  covariance = np.outer(mu, mu) * (np.exp(covariance) - 1)
194
+ mu -= 1
194
195
 
195
196
  # we validate and convert to numpy after all models have been fitted to keep
196
197
  # features names information.
@@ -1,9 +1,9 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skfolio
3
- Version: 0.10.1
3
+ Version: 0.10.2
4
4
  Summary: Portfolio optimization built on top of scikit-learn
5
5
  Author-email: Hugo Delatte <delatte.hugo@gmail.com>
6
- Maintainer-email: Hugo Delatte <delatte.hugo@gmail.com>, Matteo Manzi <matteomanzi09@gmail.com>
6
+ Maintainer-email: Hugo Delatte <delatte.hugo@gmail.com>, Matteo Manzi <matteomanzi09@gmail.com>, Carlo Nicolini <c.nicolini@ipazia.com>
7
7
  License: BSD 3-Clause License
8
8
 
9
9
  Copyright (c) 2007-2023 The skfolio developers.
@@ -176,7 +176,6 @@ Installation
176
176
  pip install -U skfolio
177
177
 
178
178
 
179
-
180
179
  Dependencies
181
180
  ~~~~~~~~~~~~
182
181
 
@@ -192,6 +191,23 @@ Dependencies
192
191
  - joblib (>= |JoblibMinVersion|)
193
192
  - plotly (>= |PlotlyMinVersion|)
194
193
 
194
+ Docker
195
+ ~~~~~~
196
+
197
+ You can also spin up a reproducible JupyterLab environment using Docker:
198
+
199
+ Build the image::
200
+
201
+ docker build -t skfolio-jupyterlab .
202
+
203
+ Run the container::
204
+
205
+ docker run -p 8888:8888 -v <path-to-your-folder-containing-data>:/app/data -it skfolio-jupyterlab
206
+
207
+ Browse:
208
+
209
+ Open localhost:8888/lab and start using `skfolio`
210
+
195
211
  Key Concepts
196
212
  ~~~~~~~~~~~~
197
213
  Since the development of modern portfolio theory by Markowitz (1952), mean-variance
@@ -800,7 +816,7 @@ Recognition
800
816
  ~~~~~~~~~~~
801
817
 
802
818
  We would like to thank all contributors to our direct dependencies, such as
803
- scikit-learn and cvxpy, as well as the contributors of the following resources that
819
+ `scikit-learn <https://github.com/scikit-learn/scikit-learn>`_ and `cvxpy <https://github.com/cvxpy/cvxpy>`_, as well as the contributors of the following resources that
804
820
  served as sources of inspiration:
805
821
 
806
822
  * PyPortfolioOpt
@@ -809,6 +825,7 @@ served as sources of inspiration:
809
825
  * microprediction
810
826
  * statsmodels
811
827
  * rsome
828
+ * danielppalomar.com
812
829
  * gautier.marti.ai
813
830
 
814
831
 
@@ -817,12 +834,25 @@ Citation
817
834
 
818
835
  If you use `skfolio` in a scientific publication, we would appreciate citations:
819
836
 
820
- Bibtex entry::
821
-
822
- @misc{skfolio,
823
- author = {Delatte, Hugo and Nicolini, Carlo},
824
- title = {skfolio},
825
- year = {2023},
826
- url = {https://github.com/skfolio/skfolio}
827
- }
837
+ **The library**::
838
+
839
+ @software{skfolio,
840
+ title = {skfolio},
841
+ author = {Delatte, Hugo and Nicolini, Carlo and Manzi, Matteo},
842
+ year = {2024},
843
+ doi = {TBD after next release},
844
+ url = {https://github.com/skfolio/skfolio}
845
+ }
846
+
847
+ **The paper**::
848
+
849
+ @article{nicolini2025skfolio,
850
+ title = {skfolio: Portfolio Optimization in Python},
851
+ author = {Nicolini, Carlo and Manzi, Matteo and Delatte, Hugo},
852
+ journal = {arXiv preprint arXiv:2507.04176},
853
+ year = {2025},
854
+ eprint = {2507.04176},
855
+ archivePrefix = {arXiv},
856
+ url = {https://arxiv.org/abs/2507.04176}
857
+ }
828
858
 
@@ -99,7 +99,7 @@ skfolio/preprocessing/_returns.py,sha256=6G5qJIVHGnIoeBNAqpJTB-569g9NeXVIyrz033b
99
99
  skfolio/prior/__init__.py,sha256=4bi4u7Y-D9vLKb0nxlAXYEZUuYkjPXQcC7qlYUu_DMA,720
100
100
  skfolio/prior/_base.py,sha256=aSqyhBYc35RpWq4XpM3UsOu88Bvxbqn7QhctK9bP0I0,2217
101
101
  skfolio/prior/_black_litterman.py,sha256=oRH6wUjsL5bkjiNbVtxaIPMNi34rqPp7WBmDbJiklKM,10675
102
- skfolio/prior/_empirical.py,sha256=zRceQNsbeWdkZHIaFvO91AhZTqkPd8YE2f60cK39M-U,7486
102
+ skfolio/prior/_empirical.py,sha256=f_5PTd3orjIXIaqWEs9fPffnStNLXe3Y_-PZ1dc0p3U,7506
103
103
  skfolio/prior/_entropy_pooling.py,sha256=x4qd-bU52ZGePwduPNY5fBhWwrNHfI77oWp5x0KyLPc,59285
104
104
  skfolio/prior/_factor_model.py,sha256=lbXFsuidDJvLBX7fwp6fXXvgdL3MzkL5lJCx7HEABcA,12241
105
105
  skfolio/prior/_opinion_pooling.py,sha256=dBZ8TjlAOKWA9lZFD4DS_PH5HG8iZYgtNrJLPnqwX0o,19055
@@ -116,8 +116,8 @@ skfolio/utils/figure.py,sha256=2U0PuHRuza_1N6o_fWD8amNDc0IhgfzM5owFl3zBzwg,5744
116
116
  skfolio/utils/sorting.py,sha256=F7gfIBfnulfDUiqvzrlR-pba4PPLJT6NH7-5s4sdRhw,3521
117
117
  skfolio/utils/stats.py,sha256=glVHo7rjwy06dl5kkULLOADMrEkVJcfXXAz-1qmYQL4,17005
118
118
  skfolio/utils/tools.py,sha256=XQ-bkbhIqBTuv_ZLK-vDnDx8NGFCFvmWoJF8Ui1tj38,23020
119
- skfolio-0.10.1.dist-info/licenses/LICENSE,sha256=F6Gi-ZJX5BlVzYK8R9NcvAkAsKa7KO29xB1OScbrH6Q,1526
120
- skfolio-0.10.1.dist-info/METADATA,sha256=LwEyMOUgw9X1asJvXVAVvkNSYeKXvqo35bZsZBFQ28o,25136
121
- skfolio-0.10.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
- skfolio-0.10.1.dist-info/top_level.txt,sha256=NXEaoS9Ms7t32gxkb867nV0OKlU0KmssL7IJBVo0fJs,8
123
- skfolio-0.10.1.dist-info/RECORD,,
119
+ skfolio-0.10.2.dist-info/licenses/LICENSE,sha256=F6Gi-ZJX5BlVzYK8R9NcvAkAsKa7KO29xB1OScbrH6Q,1526
120
+ skfolio-0.10.2.dist-info/METADATA,sha256=GO42LTbqL_TT9Ml1TWGrTTIM_KPKg0lTx_yyoYxqxgU,26181
121
+ skfolio-0.10.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
122
+ skfolio-0.10.2.dist-info/top_level.txt,sha256=NXEaoS9Ms7t32gxkb867nV0OKlU0KmssL7IJBVo0fJs,8
123
+ skfolio-0.10.2.dist-info/RECORD,,