optiml 1.5__tar.gz → 1.8__tar.gz

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.
Files changed (98) hide show
  1. optiml-1.8/LICENSE +21 -0
  2. optiml-1.8/MANIFEST.in +1 -0
  3. optiml-1.8/PKG-INFO +204 -0
  4. {optiml-1.5 → optiml-1.8}/README.md +48 -31
  5. optiml-1.8/optiml/ml/data/ML-CUP19/ML-CUP19-TR.csv +1772 -0
  6. optiml-1.8/optiml/ml/data/ML-CUP19/ML-CUP19-TS.csv +418 -0
  7. optiml-1.8/optiml/ml/data/ML-CUP19/dmeoli_ML-CUP19-TS.csv +416 -0
  8. {optiml-1.5 → optiml-1.8}/optiml/ml/neural_network/_base.py +102 -1
  9. {optiml-1.5 → optiml-1.8}/optiml/ml/neural_network/activations.py +9 -0
  10. optiml-1.8/optiml/ml/neural_network/initializers.py +66 -0
  11. {optiml-1.5 → optiml-1.8}/optiml/ml/neural_network/layers.py +80 -0
  12. {optiml-1.5 → optiml-1.8}/optiml/ml/neural_network/losses.py +55 -8
  13. optiml-1.8/optiml/ml/neural_network/regularizers.py +87 -0
  14. {optiml-1.5 → optiml-1.8}/optiml/ml/svm/_base.py +6 -6
  15. {optiml-1.5 → optiml-1.8}/optiml/ml/svm/kernels.py +45 -10
  16. {optiml-1.5 → optiml-1.8}/optiml/ml/svm/losses.py +105 -36
  17. {optiml-1.5 → optiml-1.8}/optiml/ml/svm/smo.py +75 -1
  18. optiml-1.8/optiml/ml/tests/_datasets.py +49 -0
  19. optiml-1.8/optiml/ml/tests/_utils.py +28 -0
  20. optiml-1.8/optiml/ml/tests/test_initializers.py +33 -0
  21. {optiml-1.5 → optiml-1.8}/optiml/ml/tests/test_neural_network.py +17 -2
  22. {optiml-1.5 → optiml-1.8}/optiml/ml/tests/test_svc.py +30 -77
  23. {optiml-1.5 → optiml-1.8}/optiml/ml/tests/test_svr.py +16 -51
  24. {optiml-1.5 → optiml-1.8}/optiml/ml/utils.py +1 -2
  25. {optiml-1.5 → optiml-1.8}/optiml/opti/_base.py +20 -14
  26. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/_base.py +89 -28
  27. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/active_set.py +64 -33
  28. optiml-1.8/optiml/opti/constrained/frank_wolfe.py +165 -0
  29. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/interior_point.py +74 -38
  30. optiml-1.8/optiml/opti/constrained/projected_gradient.py +143 -0
  31. optiml-1.8/optiml/opti/constrained/tests/test_lower_bound.py +29 -0
  32. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/_base.py +3 -0
  33. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/line_search/__init__.py +2 -2
  34. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/line_search/conjugate_gradient.py +69 -110
  35. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/line_search/gradient_descent.py +14 -71
  36. optiml-1.8/optiml/opti/unconstrained/line_search/newton.py +194 -0
  37. optiml-1.8/optiml/opti/unconstrained/line_search/quasi_newton.py +488 -0
  38. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/proximal_bundle.py +53 -68
  39. optiml-1.8/optiml/opti/unconstrained/stochastic/_base.py +243 -0
  40. optiml-1.8/optiml/opti/unconstrained/stochastic/adadelta.py +133 -0
  41. optiml-1.8/optiml/opti/unconstrained/stochastic/adagrad.py +123 -0
  42. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/adam.py +50 -0
  43. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/adamax.py +50 -0
  44. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/amsgrad.py +49 -0
  45. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/gradient_descent.py +40 -0
  46. optiml-1.8/optiml/opti/unconstrained/stochastic/rmsprop.py +156 -0
  47. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/schedules.py +1 -1
  48. optiml-1.8/optiml/opti/unconstrained/tests/test_functions.py +34 -0
  49. optiml-1.8/optiml/opti/unconstrained/tests/test_quasi_newton.py +30 -0
  50. optiml-1.8/optiml/opti/unconstrained/tests/test_verbose.py +25 -0
  51. {optiml-1.5 → optiml-1.8}/optiml/opti/utils.py +54 -23
  52. optiml-1.8/optiml.egg-info/PKG-INFO +204 -0
  53. {optiml-1.5 → optiml-1.8}/optiml.egg-info/SOURCES.txt +12 -1
  54. {optiml-1.5 → optiml-1.8}/optiml.egg-info/requires.txt +1 -0
  55. {optiml-1.5 → optiml-1.8}/setup.py +6 -3
  56. optiml-1.5/PKG-INFO +0 -165
  57. optiml-1.5/optiml/ml/neural_network/initializers.py +0 -47
  58. optiml-1.5/optiml/ml/neural_network/regularizers.py +0 -46
  59. optiml-1.5/optiml/opti/constrained/frank_wolfe.py +0 -147
  60. optiml-1.5/optiml/opti/constrained/projected_gradient.py +0 -125
  61. optiml-1.5/optiml/opti/unconstrained/line_search/newton.py +0 -229
  62. optiml-1.5/optiml/opti/unconstrained/line_search/quasi_newton.py +0 -297
  63. optiml-1.5/optiml/opti/unconstrained/stochastic/_base.py +0 -167
  64. optiml-1.5/optiml/opti/unconstrained/stochastic/adadelta.py +0 -89
  65. optiml-1.5/optiml/opti/unconstrained/stochastic/adagrad.py +0 -81
  66. optiml-1.5/optiml/opti/unconstrained/stochastic/rmsprop.py +0 -108
  67. optiml-1.5/optiml/opti/unconstrained/tests/test_quasi_newton.py +0 -20
  68. optiml-1.5/optiml.egg-info/PKG-INFO +0 -165
  69. {optiml-1.5 → optiml-1.8}/optiml/__init__.py +0 -0
  70. {optiml-1.5 → optiml-1.8}/optiml/ml/__init__.py +0 -0
  71. {optiml-1.5 → optiml-1.8}/optiml/ml/neural_network/__init__.py +0 -0
  72. {optiml-1.5 → optiml-1.8}/optiml/ml/svm/__init__.py +0 -0
  73. {optiml-1.5 → optiml-1.8}/optiml/ml/tests/__init__.py +0 -0
  74. {optiml-1.5 → optiml-1.8}/optiml/opti/__init__.py +0 -0
  75. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/__init__.py +0 -0
  76. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/__init__.py +0 -0
  77. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/test_active_set.py +0 -0
  78. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/test_frank_wolfe.py +0 -0
  79. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/test_interior_point.py +0 -0
  80. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/test_lagrangian_quadratic.py +0 -0
  81. {optiml-1.5 → optiml-1.8}/optiml/opti/constrained/tests/test_projected_gradient.py +0 -0
  82. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/__init__.py +0 -0
  83. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/line_search/_base.py +0 -0
  84. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/line_search/line_search.py +0 -0
  85. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/stochastic/__init__.py +0 -0
  86. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/__init__.py +0 -0
  87. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_adadelta.py +0 -0
  88. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_adagrad.py +0 -0
  89. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_adam.py +0 -0
  90. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_adamax.py +0 -0
  91. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_amsgrad.py +0 -0
  92. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_conjugate_gradient.py +0 -0
  93. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_gradient_descent.py +0 -0
  94. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_newton.py +0 -0
  95. {optiml-1.5 → optiml-1.8}/optiml/opti/unconstrained/tests/test_rmsprop.py +0 -0
  96. {optiml-1.5 → optiml-1.8}/optiml.egg-info/dependency_links.txt +0 -0
  97. {optiml-1.5 → optiml-1.8}/optiml.egg-info/top_level.txt +0 -0
  98. {optiml-1.5 → optiml-1.8}/setup.cfg +0 -0
optiml-1.8/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Donato Meoli
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
optiml-1.8/MANIFEST.in ADDED
@@ -0,0 +1 @@
1
+ recursive-include optiml/ml/data *.csv
optiml-1.8/PKG-INFO ADDED
@@ -0,0 +1,204 @@
1
+ Metadata-Version: 2.4
2
+ Name: optiml
3
+ Version: 1.8
4
+ Summary: Optimizers for/and sklearn compatible Machine Learning models
5
+ Home-page: https://github.com/dmeoli/optiml
6
+ Author: Donato Meoli
7
+ Author-email: donato.meoli@outlook.com
8
+ License: MIT
9
+ Requires-Python: >=3.9
10
+ Description-Content-Type: text/markdown
11
+ License-File: LICENSE
12
+ Requires-Dist: autograd
13
+ Requires-Dist: casadi
14
+ Requires-Dist: cvxopt
15
+ Requires-Dist: cvxpy
16
+ Requires-Dist: matplotlib
17
+ Requires-Dist: numpy
18
+ Requires-Dist: pytest
19
+ Requires-Dist: qpsolvers
20
+ Requires-Dist: quadprog
21
+ Requires-Dist: scikit-learn
22
+ Requires-Dist: scipy
23
+ Requires-Dist: wurlitzer
24
+ Dynamic: author
25
+ Dynamic: author-email
26
+ Dynamic: description
27
+ Dynamic: description-content-type
28
+ Dynamic: home-page
29
+ Dynamic: license
30
+ Dynamic: license-file
31
+ Dynamic: requires-dist
32
+ Dynamic: requires-python
33
+ Dynamic: summary
34
+
35
+ # OptiML
36
+
37
+ [![CI](https://github.com/dmeoli/optiml/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/dmeoli/optiml/actions/workflows/ci.yml)
38
+ [![Coverage Status](https://coveralls.io/repos/github/dmeoli/optiml/badge.svg?branch=master)](https://coveralls.io/github/dmeoli/optiml?branch=master)
39
+ [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)
40
+ [![PyPI Version](https://img.shields.io/pypi/v/optiml.svg?color=blue)](https://pypi.org/project/optiml/)
41
+ [![PyPI Downloads](https://img.shields.io/pypi/dm/optiml.svg)](https://pypistats.org/packages/optiml)
42
+ [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/dmeoli/optiml/master)
43
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/dmeoli/optiml)
44
+ [![Documentation](https://img.shields.io/badge/docs-online-blue)](https://dmeoli.github.io/optiml)
45
+
46
+ OptiML is a sklearn compatible implementation of *Support Vector Machines* and *Deep Neural Networks*, both with some of
47
+ the most successful features according to the state of the art.
48
+
49
+ This work was motivated by the possibility of being able to solve the optimization problem deriving from the
50
+ mathematical formulation of these models through a wide range of optimization algorithms object of study and developed
51
+ for the Numerical Methods and Optimization course @ [Department of Computer Science](https://www.di.unipi.it/en/) @
52
+ [University of Pisa](https://www.unipi.it/index.php/english) under the supervision of
53
+ prof. [Antonio Frangioni](http://pages.di.unipi.it/frangio/).
54
+
55
+ ## Contents
56
+
57
+ - Numerical Optimization
58
+ - Unconstrained Optimization
59
+ - Line Search Methods
60
+ - 1st Order Methods
61
+ - [x] Steepest Gradient Descent
62
+ - [x] Conjugate Gradient
63
+ - [x] Fletcher–Reeves formula
64
+ - [x] Polak–Ribière formula
65
+ - [x] Hestenes-Stiefel formula
66
+ - [x] Dai-Yuan formula
67
+ - 2nd Order Methods
68
+ - [x] Newton
69
+ - Quasi-Newton
70
+ - [x] BFGS
71
+ - [x] L-BFGS
72
+ - Stochastic Methods
73
+ - [x] Stochastic Gradient Descent
74
+ - [x] Momentum
75
+ - [x] Polyak
76
+ - [x] Nesterov
77
+ - [x] Adam
78
+ - [x] Momentum
79
+ - [x] Polyak
80
+ - [x] Nesterov
81
+ - [x] AMSGrad
82
+ - [x] Momentum
83
+ - [x] Polyak
84
+ - [x] Nesterov
85
+ - [x] AdaMax
86
+ - [x] Momentum
87
+ - [x] Polyak
88
+ - [x] Nesterov
89
+ - [x] AdaGrad
90
+ - [x] AdaDelta
91
+ - [x] RMSProp
92
+ - [x] Momentum
93
+ - [x] Polyak
94
+ - [x] Nesterov
95
+ - [x] Schedules
96
+ - Step size
97
+ - [x] Decaying
98
+ - [x] Linear Annealing
99
+ - [x] Repeater
100
+ - Momentum
101
+ - [x] Sutskever Blend
102
+ - [x] Proximal Bundle with [cvxpy](https://github.com/cvxgrp/cvxpy) interface to
103
+ [ecos](https://github.com/embotech/ecos), [osqp](https://github.com/oxfordcontrol/osqp),
104
+ [scs](https://github.com/cvxgrp/scs),
105
+ [etc](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver).
106
+ - Constrained Quadratic Optimization
107
+ - Box-Constrained Quadratic Methods
108
+ - [x] Projected Gradient
109
+ - [x] Frank-Wolfe or Conditional Gradient
110
+ - [x] Active Set
111
+ - [x] Interior Point
112
+ - [x] Lagrangian Dual
113
+ - [x] Augmented Lagrangian Dual
114
+
115
+ - Machine Learning
116
+ - [x] Support Vector Machines
117
+ - Formulations
118
+ - Primal
119
+ - Wolfe Dual
120
+ - Lagrangian Dual
121
+ - [x] Support Vector Classifier
122
+ - Losses
123
+ - [x] Hinge (L1 Loss) ![l1_svc_loss](notebooks/optimization/tex/img/l1_svc_loss.png)
124
+ - [x] Squared Hinge (L2 Loss) ![l2_svc_loss](notebooks/optimization/tex/img/l2_svc_loss.png)
125
+ - [x] Support Vector Regression
126
+ - Losses
127
+ - [x] Epsilon-insensitive (L1 Loss) ![l1_svr_loss](notebooks/optimization/tex/img/l1_svr_loss.png)
128
+ - [x] Squared Epsilon-insensitive (L2 Loss) ![l2_svr_loss](notebooks/optimization/tex/img/l2_svr_loss.png)
129
+ - Kernels
130
+ - [x] Linear
131
+
132
+ | SVC | SVR |
133
+ |:--------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------:|
134
+ | ![linear_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/linear_dual_l1_svc_hyperplane.png) | ![linear_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/linear_dual_l1_svr_hyperplane.png) |
135
+
136
+ - [x] Polynomial
137
+
138
+ | SVC | SVR |
139
+ | :----: | :----: |
140
+ | ![poly_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/poly_dual_l1_svc_hyperplane.png) | ![poly_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/poly_dual_l1_svr_hyperplane.png) |
141
+
142
+ - [x] Gaussian
143
+
144
+ | SVC | SVR |
145
+ |:------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------:|
146
+ | ![gaussian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/gaussian_dual_l1_svc_hyperplane.png) | ![gaussian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/gaussian_dual_l1_svr_hyperplane.png) |
147
+
148
+ - [x] Laplacian
149
+
150
+ | SVC | SVR |
151
+ |:--------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------:|
152
+ | ![laplacian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/laplacian_dual_l1_svc_hyperplane.png) | ![laplacian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/laplacian_dual_l1_svr_hyperplane.png) |
153
+
154
+ - [x] Sigmoid
155
+ - Optimizers (ad hoc)
156
+ - [x] Sequential Minimal Optimization (SMO)
157
+ - [x] QP solver with [qpsolvers](https://github.com/stephane-caron/qpsolvers) interface to
158
+ [cvxopt](https://github.com/cvxopt/cvxopt), [quadprog](https://github.com/rmcgibbo/quadprog),
159
+ [qpOASES](https://github.com/coin-or/qpOASES), [etc](https://github.com/stephane-caron/qpsolvers#solvers).
160
+ - [x] Neural Networks
161
+ - [x] Neural Network Classifier
162
+ - [x] Neural Network Regressor
163
+ - Losses
164
+ - [x] Mean Absolute Error (L1 Loss)
165
+ - [x] Mean Squared Error (L2 Loss)
166
+ - [x] Binary Cross Entropy
167
+ - [x] Categorical Cross Entropy
168
+ - [x] Sparse Categorical Cross Entropy
169
+ - Regularizers
170
+ - [x] L1 or Lasso
171
+ - [x] L2 or Ridge or Tikhonov
172
+ - Activations
173
+ - [x] Linear
174
+ - [x] Sigmoid
175
+ - [x] Tanh
176
+ - [x] ReLU
177
+ - [x] SoftMax
178
+ - Layers
179
+ - [x] Fully Connected
180
+ - Initializers
181
+ - [x] Xavier or Glorot (normal and uniform)
182
+ - [x] He (normal and uniform)
183
+
184
+ ## Install
185
+
186
+ ```
187
+ pip install optiml
188
+ ```
189
+
190
+ ## Documentation
191
+
192
+ The full API reference is available at [dmeoli.github.io/optiml](https://dmeoli.github.io/optiml),
193
+ automatically built from the source docstrings and published to GitHub Pages on every push to `master`.
194
+
195
+ It can also be built locally with [Sphinx](https://www.sphinx-doc.org):
196
+
197
+ ```
198
+ pip install -r docs/requirements.txt
199
+ sphinx-build -b html docs docs/_build/html
200
+ ```
201
+
202
+ ## License [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
203
+
204
+ This software is released under the MIT License. See the [LICENSE](LICENSE) file for details.
@@ -1,18 +1,22 @@
1
1
  # OptiML
2
- [![Build Status](https://travis-ci.com/dmeoli/optiml.svg?branch=master)](https://travis-ci.com/dmeoli/optiml)
3
- [![Coverage Status](https://coveralls.io/repos/github/dmeoli/optiml/badge.svg?branch=master)](https://coveralls.io/github/dmeoli/optiml?branch=master)
4
- [![Python Version](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-blue)](https://img.shields.io/badge/python-3.6%20%7C%203.7%20%7C%203.8%20%7C%203.9-blue)
2
+
3
+ [![CI](https://github.com/dmeoli/optiml/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/dmeoli/optiml/actions/workflows/ci.yml)
4
+ [![Coverage Status](https://coveralls.io/repos/github/dmeoli/optiml/badge.svg?branch=master)](https://coveralls.io/github/dmeoli/optiml?branch=master)
5
+ [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)
5
6
  [![PyPI Version](https://img.shields.io/pypi/v/optiml.svg?color=blue)](https://pypi.org/project/optiml/)
6
7
  [![PyPI Downloads](https://img.shields.io/pypi/dm/optiml.svg)](https://pypistats.org/packages/optiml)
7
8
  [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/dmeoli/optiml/master)
9
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/dmeoli/optiml)
10
+ [![Documentation](https://img.shields.io/badge/docs-online-blue)](https://dmeoli.github.io/optiml)
8
11
 
9
- OptiML is a sklearn compatible implementation of *Support Vector Machines* and *Deep Neural Networks*,
10
- both with some of the most successful features according to the state of the art.
12
+ OptiML is a sklearn compatible implementation of *Support Vector Machines* and *Deep Neural Networks*, both with some of
13
+ the most successful features according to the state of the art.
11
14
 
12
- This work was motivated by the possibility of being able to solve the optimization problem deriving from the mathematical
13
- formulation of these models through a wide range of optimization algorithms object of study and developed for the
14
- Numerical Methods and Optimization course @ [Department of Computer Science](https://www.di.unipi.it/en/) @
15
- [University of Pisa](https://www.unipi.it/index.php/english) under the supervision of prof. [Antonio Frangioni](http://pages.di.unipi.it/frangio/).
15
+ This work was motivated by the possibility of being able to solve the optimization problem deriving from the
16
+ mathematical formulation of these models through a wide range of optimization algorithms object of study and developed
17
+ for the Numerical Methods and Optimization course @ [Department of Computer Science](https://www.di.unipi.it/en/) @
18
+ [University of Pisa](https://www.unipi.it/index.php/english) under the supervision of
19
+ prof. [Antonio Frangioni](http://pages.di.unipi.it/frangio/).
16
20
 
17
21
  ## Contents
18
22
 
@@ -30,7 +34,7 @@ Numerical Methods and Optimization course @ [Department of Computer Science](ht
30
34
  - [x] Newton
31
35
  - Quasi-Newton
32
36
  - [x] BFGS
33
- - [ ] L-BFGS
37
+ - [x] L-BFGS
34
38
  - Stochastic Methods
35
39
  - [x] Stochastic Gradient Descent
36
40
  - [x] Momentum
@@ -61,9 +65,10 @@ Numerical Methods and Optimization course @ [Department of Computer Science](ht
61
65
  - [x] Repeater
62
66
  - Momentum
63
67
  - [x] Sutskever Blend
64
- - [x] Proximal Bundle with [cvxpy](https://github.com/cvxgrp/cvxpy) interface to
65
- [ecos](https://github.com/embotech/ecos), [osqp](https://github.com/oxfordcontrol/osqp),
66
- [scs](https://github.com/cvxgrp/scs), [etc](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver).
68
+ - [x] Proximal Bundle with [cvxpy](https://github.com/cvxgrp/cvxpy) interface to
69
+ [ecos](https://github.com/embotech/ecos), [osqp](https://github.com/oxfordcontrol/osqp),
70
+ [scs](https://github.com/cvxgrp/scs),
71
+ [etc](https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver).
67
72
  - Constrained Quadratic Optimization
68
73
  - Box-Constrained Quadratic Methods
69
74
  - [x] Projected Gradient
@@ -89,35 +94,35 @@ Numerical Methods and Optimization course @ [Department of Computer Science](ht
89
94
  - [x] Squared Epsilon-insensitive (L2 Loss) ![l2_svr_loss](notebooks/optimization/tex/img/l2_svr_loss.png)
90
95
  - Kernels
91
96
  - [x] Linear
92
-
93
- | SVC | SVR |
94
- | :----: | :----: |
97
+
98
+ | SVC | SVR |
99
+ |:--------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------:|
95
100
  | ![linear_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/linear_dual_l1_svc_hyperplane.png) | ![linear_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/linear_dual_l1_svr_hyperplane.png) |
96
-
101
+
97
102
  - [x] Polynomial
98
-
99
- | SVC | SVR |
103
+
104
+ | SVC | SVR |
100
105
  | :----: | :----: |
101
106
  | ![poly_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/poly_dual_l1_svc_hyperplane.png) | ![poly_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/poly_dual_l1_svr_hyperplane.png) |
102
-
107
+
103
108
  - [x] Gaussian
104
-
105
- | SVC | SVR |
106
- | :----: | :----: |
109
+
110
+ | SVC | SVR |
111
+ |:------------------------------------------------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------:|
107
112
  | ![gaussian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/gaussian_dual_l1_svc_hyperplane.png) | ![gaussian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/gaussian_dual_l1_svr_hyperplane.png) |
108
-
113
+
109
114
  - [x] Laplacian
110
-
111
- | SVC | SVR |
112
- | :----: | :----: |
115
+
116
+ | SVC | SVR |
117
+ |:--------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------:|
113
118
  | ![laplacian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/laplacian_dual_l1_svc_hyperplane.png) | ![laplacian_dual_l1_svc_hyperplane](notebooks/optimization/tex/img/laplacian_dual_l1_svr_hyperplane.png) |
114
-
119
+
115
120
  - [x] Sigmoid
116
121
  - Optimizers (ad hoc)
117
122
  - [x] Sequential Minimal Optimization (SMO)
118
- - [x] QP solver with [qpsolvers](https://github.com/stephane-caron/qpsolvers) interface to
119
- [cvxopt](https://github.com/cvxopt/cvxopt), [quadprog](https://github.com/rmcgibbo/quadprog),
120
- [qpOASES](https://github.com/coin-or/qpOASES), [etc](https://github.com/stephane-caron/qpsolvers#solvers).
123
+ - [x] QP solver with [qpsolvers](https://github.com/stephane-caron/qpsolvers) interface to
124
+ [cvxopt](https://github.com/cvxopt/cvxopt), [quadprog](https://github.com/rmcgibbo/quadprog),
125
+ [qpOASES](https://github.com/coin-or/qpOASES), [etc](https://github.com/stephane-caron/qpsolvers#solvers).
121
126
  - [x] Neural Networks
122
127
  - [x] Neural Network Classifier
123
128
  - [x] Neural Network Regressor
@@ -148,6 +153,18 @@ Numerical Methods and Optimization course @ [Department of Computer Science](ht
148
153
  pip install optiml
149
154
  ```
150
155
 
156
+ ## Documentation
157
+
158
+ The full API reference is available at [dmeoli.github.io/optiml](https://dmeoli.github.io/optiml),
159
+ automatically built from the source docstrings and published to GitHub Pages on every push to `master`.
160
+
161
+ It can also be built locally with [Sphinx](https://www.sphinx-doc.org):
162
+
163
+ ```
164
+ pip install -r docs/requirements.txt
165
+ sphinx-build -b html docs docs/_build/html
166
+ ```
167
+
151
168
  ## License [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
152
169
 
153
170
  This software is released under the MIT License. See the [LICENSE](LICENSE) file for details.