Skip to content

Numi2/SPOTree

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

SPO Tree

This is a Python code base for training "SPO Trees" (SPOTs) from the paper "Decision Trees for Decision-Making under the Predict-then-Optimize Framework".

The "Algorithms" folder contains implementations for training (greedy) SPO Trees (SPO_tree_greedy.py) and SPO Forests (SPOForest.py) for general predict-then-optimize problems.

The "Applications" folder contains all data + code for reproducing the three numerical experiments (applications) covered in the paper:

  • Illustrative Example: A two-road shortest path decision problem.
  • Shortest Path: A shortest path decision problem over a 4 x 4 grid network, where driver starts in southwest corner and tries to find shortest path to northeast corner.
  • Yahoo News: A news article recommendation decision problem constructed from the Yahoo! Front Page Today Module dataset.

Code currently only supports Python 2.7 (not Python 3). Package Dependencies: gurobipy (with valid Gurobi license), numpy, pandas, scipy, joblib

  • The Illustrative Example application also depends on matplotlib

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 93.9%
  • Jupyter Notebook 6.1%