pymbo


Namepymbo JSON
Version 3.2.2 PyPI version JSON
download
home_pagehttps://github.com/yourusername/pymbo
SummaryPython Multi-objective Bayesian Optimization framework
upload_time2025-08-09 14:22:35
maintainerNone
docs_urlNone
authorJakub Jagielski
requires_python>=3.8
licenseMIT
keywords bayesian-optimization multi-objective optimization machine-learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyMBO: Python Multi-objective Bayesian Optimization

[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/version-3.2.2-green.svg)](https://github.com/jakub-jagielski/pymbo)

PyMBO is a comprehensive framework for multi-objective Bayesian optimization that combines advanced algorithms with intuitive visualization capabilities. The framework is designed for researchers and practitioners working with complex optimization problems involving multiple objectives and high-dimensional parameter spaces.

## Features

### Core Optimization
- **Multi-objective Bayesian optimization** using PyTorch and BoTorch backends
- **Hybrid sequential/parallel execution** with automatic mode detection
- **Multiple acquisition functions** including Expected Hypervolume Improvement (EHVI)
- **Support for mixed parameter types** (continuous, discrete, categorical)

### Screening and Analysis
- **SGLBO (Stochastic Gradient Line Bayesian Optimization)** for efficient parameter space exploration
- **Parameter importance analysis** with correlation matrices
- **Real-time visualization** of acquisition functions and optimization progress
- **Comprehensive benchmarking** tools for algorithm comparison

### Interface and Usability
- **Graphical user interface** with interactive controls
- **Programmatic API** for integration into existing workflows
- **Export capabilities** for results and visualizations
- **Extensive documentation** and examples

## Installation

### From PyPI (Recommended)
```bash
pip install pymbo
```

### From Source
```bash
git clone https://github.com/jakub-jagielski/pymbo.git
cd pymbo
pip install -r requirements.txt
```

## Quick Start

### Graphical Interface
Launch the application with:
```bash
python -m pymbo
```

### Programmatic Usage
```python
from pymbo import EnhancedMultiObjectiveOptimizer, SimpleController

# Define optimization problem
optimizer = EnhancedMultiObjectiveOptimizer(
    bounds=[(0, 10), (0, 10)],  # Parameter bounds
    objectives=['maximize']      # Optimization direction
)

# Initialize controller and run optimization
controller = SimpleController(optimizer)
results = controller.run_optimization()
```

### Parallel Optimization
```python
from pymbo.core.controller import SimpleController

controller = SimpleController()

# Benchmark multiple strategies
benchmark_results = controller.benchmark_optimization_strategies(
    strategies=['ehvi', 'ei', 'random'],
    n_suggestions=10,
    parallel=True
)

# What-if analysis
scenarios = [
    {'name': 'conservative', 'n_suggestions': 5},
    {'name': 'aggressive', 'n_suggestions': 15}
]
what_if_results = controller.run_what_if_analysis(
    scenarios=scenarios, 
    parallel=True
)
```

## SGLBO Screening Module

For complex parameter spaces, PyMBO includes a specialized screening module that provides efficient initial exploration:

```python
from pymbo.screening import ScreeningOptimizer

optimizer = ScreeningOptimizer(
    params_config=parameters_configuration,
    responses_config=responses_configuration
)

results = optimizer.run_screening()
```

The screening module provides:
- Parameter sensitivity analysis
- Response surface approximation  
- Design space reduction
- Seamless integration with main optimization

## Architecture

```
pymbo/
├── core/           # Optimization algorithms and controllers
│   ├── optimizer.py      # Core optimization implementation
│   ├── controller.py     # Optimization control and orchestration
│   └── orchestrator.py   # Parallel execution management
├── gui/            # Graphical user interface components
├── screening/      # SGLBO screening optimization
├── utils/          # Utilities for plotting and analysis
└── ...
```

The framework uses a modular design that separates:
- **Optimization algorithms** (core module)
- **User interfaces** (GUI and programmatic API)  
- **Analysis tools** (screening and utilities)
- **Visualization** (integrated plotting and export)

## Performance Characteristics

PyMBO's hybrid architecture provides:
- **Automatic parallelization** for embarrassingly parallel tasks
- **Sequential execution** for interactive optimization
- **Memory-efficient** handling of large parameter spaces
- **GPU acceleration** support where applicable

Typical performance improvements:
- 2-10x speedup for strategy benchmarking
- 3-8x faster data loading for large datasets
- Efficient memory usage for high-dimensional problems

## Documentation and Examples

The framework includes comprehensive documentation covering:
- Algorithm implementation details
- User interface guides
- API reference
- Performance benchmarks
- Integration examples

## Contributing

We welcome contributions from the research community. To contribute:

1. Fork the repository
2. Create a feature branch
3. Implement your changes with appropriate tests
4. Submit a pull request with a clear description

Please ensure that contributions maintain code quality and include appropriate documentation.

## Citation

If you use PyMBO in your research, please cite:

```bibtex
@software{jagielski2025pymbo,
  author = {Jakub Jagielski},
  title = {PyMBO: A Python library for multivariate Bayesian optimization and stochastic Bayesian screening},
  version = {3.2.2},
  year = {2025},
  url = {https://github.com/jakub-jagielski/pymbo}
}
```

## Development

PyMBO was developed with the assistance of [Anthropic's Claude Code](https://docs.anthropic.com/en/docs/claude-code), an AI-powered development tool that enhanced the implementation of optimization algorithms, GUI components, and documentation.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Support

For questions, bug reports, or feature requests, please use the [GitHub Issues](https://github.com/jakub-jagielski/pymbo/issues) system.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yourusername/pymbo",
    "name": "pymbo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "bayesian-optimization, multi-objective, optimization, machine-learning",
    "author": "Jakub Jagielski",
    "author_email": "Jakub Jagielski <jakub.jagielski@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/5a/4d/b72e186d28db21a8544315521641e231538e3b6457a12ccc2232288058dc/pymbo-3.2.2.tar.gz",
    "platform": null,
    "description": "# PyMBO: Python Multi-objective Bayesian Optimization\r\n\r\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Version](https://img.shields.io/badge/version-3.2.2-green.svg)](https://github.com/jakub-jagielski/pymbo)\r\n\r\nPyMBO is a comprehensive framework for multi-objective Bayesian optimization that combines advanced algorithms with intuitive visualization capabilities. The framework is designed for researchers and practitioners working with complex optimization problems involving multiple objectives and high-dimensional parameter spaces.\r\n\r\n## Features\r\n\r\n### Core Optimization\r\n- **Multi-objective Bayesian optimization** using PyTorch and BoTorch backends\r\n- **Hybrid sequential/parallel execution** with automatic mode detection\r\n- **Multiple acquisition functions** including Expected Hypervolume Improvement (EHVI)\r\n- **Support for mixed parameter types** (continuous, discrete, categorical)\r\n\r\n### Screening and Analysis\r\n- **SGLBO (Stochastic Gradient Line Bayesian Optimization)** for efficient parameter space exploration\r\n- **Parameter importance analysis** with correlation matrices\r\n- **Real-time visualization** of acquisition functions and optimization progress\r\n- **Comprehensive benchmarking** tools for algorithm comparison\r\n\r\n### Interface and Usability\r\n- **Graphical user interface** with interactive controls\r\n- **Programmatic API** for integration into existing workflows\r\n- **Export capabilities** for results and visualizations\r\n- **Extensive documentation** and examples\r\n\r\n## Installation\r\n\r\n### From PyPI (Recommended)\r\n```bash\r\npip install pymbo\r\n```\r\n\r\n### From Source\r\n```bash\r\ngit clone https://github.com/jakub-jagielski/pymbo.git\r\ncd pymbo\r\npip install -r requirements.txt\r\n```\r\n\r\n## Quick Start\r\n\r\n### Graphical Interface\r\nLaunch the application with:\r\n```bash\r\npython -m pymbo\r\n```\r\n\r\n### Programmatic Usage\r\n```python\r\nfrom pymbo import EnhancedMultiObjectiveOptimizer, SimpleController\r\n\r\n# Define optimization problem\r\noptimizer = EnhancedMultiObjectiveOptimizer(\r\n    bounds=[(0, 10), (0, 10)],  # Parameter bounds\r\n    objectives=['maximize']      # Optimization direction\r\n)\r\n\r\n# Initialize controller and run optimization\r\ncontroller = SimpleController(optimizer)\r\nresults = controller.run_optimization()\r\n```\r\n\r\n### Parallel Optimization\r\n```python\r\nfrom pymbo.core.controller import SimpleController\r\n\r\ncontroller = SimpleController()\r\n\r\n# Benchmark multiple strategies\r\nbenchmark_results = controller.benchmark_optimization_strategies(\r\n    strategies=['ehvi', 'ei', 'random'],\r\n    n_suggestions=10,\r\n    parallel=True\r\n)\r\n\r\n# What-if analysis\r\nscenarios = [\r\n    {'name': 'conservative', 'n_suggestions': 5},\r\n    {'name': 'aggressive', 'n_suggestions': 15}\r\n]\r\nwhat_if_results = controller.run_what_if_analysis(\r\n    scenarios=scenarios, \r\n    parallel=True\r\n)\r\n```\r\n\r\n## SGLBO Screening Module\r\n\r\nFor complex parameter spaces, PyMBO includes a specialized screening module that provides efficient initial exploration:\r\n\r\n```python\r\nfrom pymbo.screening import ScreeningOptimizer\r\n\r\noptimizer = ScreeningOptimizer(\r\n    params_config=parameters_configuration,\r\n    responses_config=responses_configuration\r\n)\r\n\r\nresults = optimizer.run_screening()\r\n```\r\n\r\nThe screening module provides:\r\n- Parameter sensitivity analysis\r\n- Response surface approximation  \r\n- Design space reduction\r\n- Seamless integration with main optimization\r\n\r\n## Architecture\r\n\r\n```\r\npymbo/\r\n\u251c\u2500\u2500 core/           # Optimization algorithms and controllers\r\n\u2502   \u251c\u2500\u2500 optimizer.py      # Core optimization implementation\r\n\u2502   \u251c\u2500\u2500 controller.py     # Optimization control and orchestration\r\n\u2502   \u2514\u2500\u2500 orchestrator.py   # Parallel execution management\r\n\u251c\u2500\u2500 gui/            # Graphical user interface components\r\n\u251c\u2500\u2500 screening/      # SGLBO screening optimization\r\n\u251c\u2500\u2500 utils/          # Utilities for plotting and analysis\r\n\u2514\u2500\u2500 ...\r\n```\r\n\r\nThe framework uses a modular design that separates:\r\n- **Optimization algorithms** (core module)\r\n- **User interfaces** (GUI and programmatic API)  \r\n- **Analysis tools** (screening and utilities)\r\n- **Visualization** (integrated plotting and export)\r\n\r\n## Performance Characteristics\r\n\r\nPyMBO's hybrid architecture provides:\r\n- **Automatic parallelization** for embarrassingly parallel tasks\r\n- **Sequential execution** for interactive optimization\r\n- **Memory-efficient** handling of large parameter spaces\r\n- **GPU acceleration** support where applicable\r\n\r\nTypical performance improvements:\r\n- 2-10x speedup for strategy benchmarking\r\n- 3-8x faster data loading for large datasets\r\n- Efficient memory usage for high-dimensional problems\r\n\r\n## Documentation and Examples\r\n\r\nThe framework includes comprehensive documentation covering:\r\n- Algorithm implementation details\r\n- User interface guides\r\n- API reference\r\n- Performance benchmarks\r\n- Integration examples\r\n\r\n## Contributing\r\n\r\nWe welcome contributions from the research community. To contribute:\r\n\r\n1. Fork the repository\r\n2. Create a feature branch\r\n3. Implement your changes with appropriate tests\r\n4. Submit a pull request with a clear description\r\n\r\nPlease ensure that contributions maintain code quality and include appropriate documentation.\r\n\r\n## Citation\r\n\r\nIf you use PyMBO in your research, please cite:\r\n\r\n```bibtex\r\n@software{jagielski2025pymbo,\r\n  author = {Jakub Jagielski},\r\n  title = {PyMBO: A Python library for multivariate Bayesian optimization and stochastic Bayesian screening},\r\n  version = {3.2.2},\r\n  year = {2025},\r\n  url = {https://github.com/jakub-jagielski/pymbo}\r\n}\r\n```\r\n\r\n## Development\r\n\r\nPyMBO was developed with the assistance of [Anthropic's Claude Code](https://docs.anthropic.com/en/docs/claude-code), an AI-powered development tool that enhanced the implementation of optimization algorithms, GUI components, and documentation.\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Support\r\n\r\nFor questions, bug reports, or feature requests, please use the [GitHub Issues](https://github.com/jakub-jagielski/pymbo/issues) system.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python Multi-objective Bayesian Optimization framework",
    "version": "3.2.2",
    "project_urls": {
        "Bug Reports": "https://github.com/yourusername/pymbo/issues",
        "Documentation": "https://github.com/yourusername/pymbo#readme",
        "Homepage": "https://github.com/yourusername/pymbo",
        "Source": "https://github.com/yourusername/pymbo"
    },
    "split_keywords": [
        "bayesian-optimization",
        " multi-objective",
        " optimization",
        " machine-learning"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1763a7c42be2fb674ffe31a69be93a95b0893e96242f47989f65b919b22df1db",
                "md5": "b459eb38314698988d0b24f0313ee617",
                "sha256": "2b6b653ed72d5593324d59ecd6d96716f54ec43dcdefe2790c7caeff7ae9591c"
            },
            "downloads": -1,
            "filename": "pymbo-3.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b459eb38314698988d0b24f0313ee617",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 474040,
            "upload_time": "2025-08-09T14:22:33",
            "upload_time_iso_8601": "2025-08-09T14:22:33.717906Z",
            "url": "https://files.pythonhosted.org/packages/17/63/a7c42be2fb674ffe31a69be93a95b0893e96242f47989f65b919b22df1db/pymbo-3.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "5a4db72e186d28db21a8544315521641e231538e3b6457a12ccc2232288058dc",
                "md5": "86551881455c72513f7a7a180e2f3d44",
                "sha256": "ce839a30fb8568c1b26c1dfc68aec890ae7020fc288514c4d7410c2aff922a58"
            },
            "downloads": -1,
            "filename": "pymbo-3.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "86551881455c72513f7a7a180e2f3d44",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 432793,
            "upload_time": "2025-08-09T14:22:35",
            "upload_time_iso_8601": "2025-08-09T14:22:35.591740Z",
            "url": "https://files.pythonhosted.org/packages/5a/4d/b72e186d28db21a8544315521641e231538e3b6457a12ccc2232288058dc/pymbo-3.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-09 14:22:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "pymbo",
    "github_not_found": true,
    "lcname": "pymbo"
}
        
Elapsed time: 0.77935s