Cookie Settings
Jupyter Notebook Model

Avocado Price Optimization


They say when life gives you avocados, make guacamole. Just like the perfect guacamole needs the right blend of onion, lemon and spices, finding an optimal avocado price needs the right blend of descriptive, predictive and prescriptive analytics.

 

Equipped with good data, the avocado pricing and supply problem is ripe with opportunities for demonstrating the power of optimization and data science. This example demonstrates how predictive and prescriptive analytics can optimize avocado prices to maximize revenue. We will use regression and quadratic programming to achieve this goal. We will demonstrate how to implement this model in the Gurobi Python API, and generate an optimal solution using the Gurobi Optimizer.

This modeling tutorial is at the introductory level, where we assume that you know Python and that you have a background on a discipline that uses quantitative methods.

Part I uses an ordinary linear regression model (OLS) to establish the relationship between price and demand based on data from the Hass Avocado Board. Part II replaces the OLS model with a trained Scikit-learn model and uses the Gurobi Machine Learning package to embed it in a Gurobi optimization model.

You may find it helpful to refer to the documentation of the Gurobi Python API. This notebook is explained in detail in our webinar on data science and mathematical optimization. You can watch these videos by clicking here.

Access the Jupyter Notebook Modeling Example

Click on the button below to access the example in Google Colab, which is a free, online Jupyter Notebook environment that allows you to write and execute Python code through your browser. 

How to Run the Jupyter Notebook Modeling Example

  • To run the example the first time, choose “Runtime” and then click “Run all”.
  • All the cells in the Jupyter Notebook will be executed.
  • The example will install the gurobipy package, which includes a limited Gurobi license that allows you to solve small models.
  • You can also modify and re-run individual cells.
  • For subsequent runs, choose “Runtime” and click “on “Restart and run all”.
  • The Gurobi Optimizer will find the optimal solution of the modeling example.

Check out the Colab Getting Started Guide for full details on how to use Colab Notebooks as well as create your own.