mesa / mesa/mesa-examples

Add ML-guided parameter optimization demo

Open
#449 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
252
Forks
279
Avg merge
8d 9h
Merged PRs (30d)
2

Description

I am developing an example which shows how to use Gaussian Process regression to assist with parameter search in Mesa models. The objective demonstrates how machine learning will decrease simulation requirements needed to identify optimal parameters.

Current state:
- Working implementation on a simple segregation model
- Uses random initialization (10 samples) then GP with UCB acquisition (20 iterations)
- Tracks and prints scores throughout
- Code passes flake8 and pre-commit checks

What I plan to add:
- Comparison with random search baseline (same number of evaluations)
- Simple feature importance to show which parameters matter most
- Documentation on adapting the approach for other models
- Clear instructions on dependencies and usage

What I need to validate:
- Whether GP actually outperforms random search for this problem
- Which acquisition function works best for ABM optimization
- How to make the approach model-agnostic

Why this matters:
Parameter tuning is a common pain point for ABM researchers. This demo would provide a starting point for people interested in ML-assisted model calibration.

Looking for feedback on approach, structure, and whether this is worth adding to mesa-examples.

Contributor guide

Open the contributing guide

Research direction

Start with the existing simple segregation-model implementation and review its random initialization, GP/UCB loop, and score tracking. Evaluate the proposed random-search baseline with the same evaluation budget, then plan the feature-importance output and guidance for adapting the demo to other models. Done when the approach, dependencies, usage, and validation criteria are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.