Skip to content

asuncionjc/mlopt

 
 

Repository files navigation

Machine Learning Optimizer

mlopt is a package to learn how to solve numerical optimization problems from data. It relies on cvxpy for modeling and gurobi for solving the problem offline.

mlopt learns how to solve programs using pytorch (pytorch-lightning), xgboost or optimaltrees. The machine learning hyperparameter optimization is performed using optuna.

Online, mlopt only requires to predict the strategy and solve a linear system using scikit-umfpack.

Examples

To see mlopt in action, have a look at the notebooks in the examples/ folder.

Documentation

Coming soon at mlopt.org!

Citing

If you use mlopt for research, please cite the following papers:

  • The Voice of Optimization:

    @article{mlopt,
      author = {{Bertsimas}, D. and {Stellato}, B.},
      title = {The Voice of Optimization},
      journal = {Machine Learning (to appear)},
      year = {2020},
      month = jun,
    }
    
  • Online Mixed-Integer Optimization in Milliseconds

    @article{stellato2019a,
      author = {{Bertsimas}, D. and {Stellato}, B.},
      title = {Online Mixed-Integer Optimization in Milliseconds},
      journal = {arXiv e-prints},
      year = {2019},
      month = jul,
      adsnote = {Provided by the SAO/NASA Astrophysics Data System},
      adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190702206B},
      archiveprefix = {arXiv},
      eprint = {1907.02206},
      keywords = {Mathematics - Optimization and Control},
      pdf = {https://arxiv.org/pdf/1907.02206.pdf},
      primaryclass = {math.OC},
    }
    
    

Projects using mlopt framework

About

The Machine Learning Optimizer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%