From 103db9e135e9433dec65f0254871c1d4e681d88c Mon Sep 17 00:00:00 2001 From: AMIT CHEJARA Date: Thu, 11 Dec 2025 17:47:22 +0530 Subject: [PATCH 1/4] Create a new data module instance across all optimization trials --- .../torch_lightning_experiment.py | 49 ++++++++++--------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py index 0bdd1f80..886de18c 100644 --- a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py +++ b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py @@ -21,8 +21,10 @@ class TorchExperiment(BaseExperiment): Parameters ---------- - datamodule : L.LightningDataModule - A PyTorch Lightning DataModule that handles data loading and preparation. + data_module : type + A PyTorch Lightning DataModule class (not an instance) that + handles data loading and preparation. It will be instantiated + with hyperparameters during optimization. lightning_module : type A PyTorch Lightning Module class (not an instance) that will be instantiated with hyperparameters during optimization. @@ -93,20 +95,18 @@ class TorchExperiment(BaseExperiment): ... def val_dataloader(self): ... return DataLoader(self.val, batch_size=self.batch_size) >>> - >>> datamodule = RandomDataModule(batch_size=16) - >>> datamodule.setup() - >>> >>> # Create Experiment >>> experiment = TorchExperiment( - ... datamodule=datamodule, + ... data_module=RandomDataModule, ... lightning_module=SimpleLightningModule, ... trainer_kwargs={'max_epochs': 3}, ... objective_metric="val_loss" ... ) >>> - >>> params = {"input_dim": 10, "hidden_dim": 16, "lr": 1e-3} + >>> lm_params = {"input_dim": 10, "hidden_dim": 16, "lr": 1e-3} + >>> dm_params = {"batch_size": 32} >>> - >>> val_result, metadata = experiment._evaluate(params) + >>> val_result, metadata = experiment._evaluate(lm_params, dm_params) """ _tags = { @@ -118,12 +118,12 @@ class TorchExperiment(BaseExperiment): def __init__( self, - datamodule, + data_module, lightning_module, trainer_kwargs=None, objective_metric: str = "val_loss", ): - self.datamodule = datamodule + self.data_module = data_module self.lightning_module = lightning_module self.trainer_kwargs = trainer_kwargs or {} self.objective_metric = objective_metric @@ -154,7 +154,7 @@ def _paramnames(self): sig = inspect.signature(self.lightning_module.__init__) return [p for p in sig.parameters.keys() if p != "self"] - def _evaluate(self, params): + def _evaluate(self, lm_params, dm_params): """Evaluate the parameters. Parameters @@ -172,9 +172,10 @@ def _evaluate(self, params): import lightning as L try: - model = self.lightning_module(**params) + model = self.lightning_module(**lm_params) trainer = L.Trainer(**self._trainer_kwargs) - trainer.fit(model, self.datamodule) + data = self.data_module(**dm_params) + trainer.fit(model, data) val_result = trainer.callback_metrics.get(self.objective_metric) metadata = {} @@ -195,7 +196,7 @@ def _evaluate(self, params): return val_result, metadata except Exception as e: - print(f"Training failed with params {params}: {e}") + print(f"Training failed with params {lm_params}: {e}") return np.float64(float("inf")), {} @classmethod @@ -265,10 +266,8 @@ def train_dataloader(self): def val_dataloader(self): return DataLoader(self.val, batch_size=self.batch_size) - datamodule = RandomDataModule(batch_size=16) - params = { - "datamodule": datamodule, + "data_module": RandomDataModule, "lightning_module": SimpleLightningModule, "trainer_kwargs": { "max_epochs": 1, @@ -339,10 +338,8 @@ def train_dataloader(self): def val_dataloader(self): return DataLoader(self.val, batch_size=self.batch_size) - datamodule2 = RegressionDataModule(batch_size=16, num_samples=150) - params2 = { - "datamodule": datamodule2, + "data_module": RegressionDataModule, "lightning_module": RegressionModule, "trainer_kwargs": { "max_epochs": 1, @@ -368,6 +365,12 @@ def _get_score_params(cls): list of dict The parameters to be used for scoring. """ - score_params1 = {"input_dim": 10, "hidden_dim": 20, "lr": 0.001} - score_params2 = {"num_layers": 3, "hidden_size": 64, "dropout": 0.2} - return [score_params1, score_params2] + score_lm_params1 = {"input_dim": 10, "hidden_dim": 20, "lr": 0.001} + score_lm_params2 = {"num_layers": 3, "hidden_size": 64, "dropout": 0.2} + score_dm_params1 = {"batch_size": 16} + score_dm_params2 = {"batch_size": 8, "num_samples": 200} + + return [ + {"lm_params": score_lm_params1, "dm_params": score_dm_params1}, + {"lm_params": score_lm_params2, "dm_params": score_dm_params2}, + ] From 1d9a535201d7d0b624886e53af37412226d74d66 Mon Sep 17 00:00:00 2001 From: AMIT CHEJARA Date: Thu, 11 Dec 2025 18:31:34 +0530 Subject: [PATCH 2/4] Show both lm_params and dm_params for a failed training run --- .../experiment/integrations/torch_lightning_experiment.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py index 886de18c..fca35e46 100644 --- a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py +++ b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py @@ -196,7 +196,9 @@ def _evaluate(self, lm_params, dm_params): return val_result, metadata except Exception as e: - print(f"Training failed with params {lm_params}: {e}") + print( + f"Training failed (lm_params={lm_params}, dm_params={dm_params}): {e}" + ) return np.float64(float("inf")), {} @classmethod From 1cdc133a20e9a6bef8c9c0b9278bf82df45f6da2 Mon Sep 17 00:00:00 2001 From: AMIT CHEJARA Date: Thu, 11 Dec 2025 20:45:50 +0530 Subject: [PATCH 3/4] Accept dm_kwargs to create a new instance of the data module for each optimization trial --- .../torch_lightning_experiment.py | 35 +++++++++---------- 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py index fca35e46..f0407c24 100644 --- a/src/hyperactive/experiment/integrations/torch_lightning_experiment.py +++ b/src/hyperactive/experiment/integrations/torch_lightning_experiment.py @@ -30,6 +30,8 @@ class TorchExperiment(BaseExperiment): with hyperparameters during optimization. trainer_kwargs : dict, optional (default=None) A dictionary of keyword arguments to pass to the PyTorch Lightning Trainer. + dm_kwargs : dict, optional (default=None) + A dictionary of keyword arguments to pass to the Data Module upon instantiation. objective_metric : str, optional (default='val_loss') The metric used to evaluate the model's performance. This should correspond to a metric logged in the LightningModule during validation. @@ -100,13 +102,13 @@ class TorchExperiment(BaseExperiment): ... data_module=RandomDataModule, ... lightning_module=SimpleLightningModule, ... trainer_kwargs={'max_epochs': 3}, + ... dm_kwargs={'batch_size': 16}, ... objective_metric="val_loss" ... ) >>> - >>> lm_params = {"input_dim": 10, "hidden_dim": 16, "lr": 1e-3} - >>> dm_params = {"batch_size": 32} + >>> params = {"input_dim": 10, "hidden_dim": 16, "lr": 1e-3} >>> - >>> val_result, metadata = experiment._evaluate(lm_params, dm_params) + >>> val_result, metadata = experiment._evaluate(params) """ _tags = { @@ -121,11 +123,13 @@ def __init__( data_module, lightning_module, trainer_kwargs=None, + dm_kwargs=None, objective_metric: str = "val_loss", ): self.data_module = data_module self.lightning_module = lightning_module self.trainer_kwargs = trainer_kwargs or {} + self.dm_kwargs = dm_kwargs or {} self.objective_metric = objective_metric super().__init__() @@ -154,7 +158,7 @@ def _paramnames(self): sig = inspect.signature(self.lightning_module.__init__) return [p for p in sig.parameters.keys() if p != "self"] - def _evaluate(self, lm_params, dm_params): + def _evaluate(self, params): """Evaluate the parameters. Parameters @@ -172,9 +176,9 @@ def _evaluate(self, lm_params, dm_params): import lightning as L try: - model = self.lightning_module(**lm_params) + model = self.lightning_module(**params) trainer = L.Trainer(**self._trainer_kwargs) - data = self.data_module(**dm_params) + data = self.data_module(**self.dm_kwargs) trainer.fit(model, data) val_result = trainer.callback_metrics.get(self.objective_metric) @@ -196,9 +200,7 @@ def _evaluate(self, lm_params, dm_params): return val_result, metadata except Exception as e: - print( - f"Training failed (lm_params={lm_params}, dm_params={dm_params}): {e}" - ) + print(f"Training failed with params {params}: {e}") return np.float64(float("inf")), {} @classmethod @@ -277,6 +279,7 @@ def val_dataloader(self): "enable_model_summary": False, "logger": False, }, + "dm_kwargs": {"batch_size": 16}, "objective_metric": "val_loss", } @@ -349,6 +352,7 @@ def val_dataloader(self): "enable_model_summary": False, "logger": False, }, + "dm_kwargs": {"batch_size": 8, "num_samples": 200}, "objective_metric": "val_loss", } @@ -367,12 +371,7 @@ def _get_score_params(cls): list of dict The parameters to be used for scoring. """ - score_lm_params1 = {"input_dim": 10, "hidden_dim": 20, "lr": 0.001} - score_lm_params2 = {"num_layers": 3, "hidden_size": 64, "dropout": 0.2} - score_dm_params1 = {"batch_size": 16} - score_dm_params2 = {"batch_size": 8, "num_samples": 200} - - return [ - {"lm_params": score_lm_params1, "dm_params": score_dm_params1}, - {"lm_params": score_lm_params2, "dm_params": score_dm_params2}, - ] + score_params1 = {"input_dim": 10, "hidden_dim": 20, "lr": 0.001} + score_params2 = {"num_layers": 3, "hidden_size": 64, "dropout": 0.2} + + return [score_params1, score_params2] From fedece5bf9a8c234d56b8b068121770e9c9a0b6a Mon Sep 17 00:00:00 2001 From: AMIT CHEJARA Date: Thu, 11 Dec 2025 22:47:56 +0530 Subject: [PATCH 4/4] Resolve merge conflicts --- .github/PULL_REQUEST_TEMPLATE.md | 37 + .github/auto-label-config.yml | 41 + .github/draft-changelog-config.yml | 67 + .github/workflows/auto-label-prs.yml | 35 + .github/workflows/docs.yml | 90 ++ .github/workflows/draft-changelog.yml | 39 + .github/workflows/test.yml | 350 ++++- .gitignore | 3 +- .readthedocs.yml | 19 + Makefile | 10 +- README.md | 2 +- docs/README.md | 92 ++ docs/requirements.txt | 19 + docs/source/Makefile | 31 + docs/source/_snippets/__init__.py | 12 + docs/source/_snippets/conftest.py | 46 + docs/source/_snippets/examples/__init__.py | 1 + .../_snippets/examples/advanced_examples.py | 77 + .../_snippets/examples/basic_examples.py | 73 + .../_snippets/getting_started/__init__.py | 1 + .../getting_started/bayesian_optimizer.py | 41 + .../getting_started/index_bayesian.py | 37 + .../getting_started/index_custom_function.py | 39 + .../getting_started/index_sklearn_tuning.py | 35 + .../_snippets/getting_started/quick_start.py | 41 + .../getting_started/sklearn_optcv.py | 41 + .../getting_started/sklearn_random_forest.py | 48 + .../source/_snippets/installation/__init__.py | 1 + .../installation/verify_installation.py | 32 + docs/source/_snippets/user_guide/__init__.py | 1 + .../_snippets/user_guide/experiments.py | 231 +++ .../_snippets/user_guide/integrations.py | 277 ++++ .../_snippets/user_guide/introduction.py | 124 ++ .../source/_snippets/user_guide/optimizers.py | 324 ++++ docs/source/_static/css/custom.css | 1300 +++++++++++++++++ docs/source/_static/fields.css | 21 + .../_static/images/badges/generate_badges.py | 188 +++ docs/source/_static/images/badges/license.svg | 11 + docs/source/_static/images/badges/python.svg | 11 + docs/source/_static/images/badges/sponsor.svg | 11 + docs/source/_static/images/badges/version.svg | 11 + docs/source/_static/images/bayes_convex.gif | Bin 0 -> 183902 bytes docs/source/_static/images/logo.png | Bin 0 -> 183993 bytes docs/source/_static/images/navbar_logo.png | Bin 0 -> 442647 bytes docs/source/_static/images/navbar_logo.svg | 326 +++++ .../_static/images/navbar_logo_dark.svg | 326 +++++ docs/source/_templates/class.rst | 10 + docs/source/_templates/function.rst | 10 + docs/source/_templates/layout.html | 6 + docs/source/about.rst | 107 ++ docs/source/about/history.rst | 126 ++ docs/source/about/license.rst | 99 ++ docs/source/about/team.rst | 102 ++ docs/source/api_reference.rst | 21 + docs/source/api_reference/base.rst | 17 + .../api_reference/experiments_benchmarks.rst | 19 + .../api_reference/experiments_function.rst | 20 + .../experiments_integrations.rst | 57 + docs/source/api_reference/optimizers.rst | 128 ++ .../api_reference/sklearn_integration.rst | 18 + docs/source/api_reference/utilities.rst | 18 + docs/source/conf.py | 435 ++++++ docs/source/examples.rst | 83 ++ docs/source/examples/general.rst | 47 + docs/source/examples/global_search.rst | 44 + docs/source/examples/integrations.rst | 49 + docs/source/examples/interactive_tutorial.rst | 50 + docs/source/examples/local_search.rst | 41 + docs/source/examples/optuna_backend.rst | 56 + docs/source/examples/other.rst | 46 + docs/source/examples/population_based.rst | 45 + .../examples/sequential_model_based.rst | 43 + docs/source/examples/sklearn_backend.rst | 57 + docs/source/faq.rst | 40 + docs/source/faq/advanced_usage.rst | 69 + docs/source/faq/common_issues.rst | 72 + docs/source/faq/getting_help.rst | 28 + docs/source/faq/getting_started.rst | 53 + docs/source/faq/integrations.rst | 64 + docs/source/faq/search_space.rst | 49 + docs/source/get_involved.rst | 123 ++ docs/source/get_involved/code_of_conduct.rst | 114 ++ docs/source/get_involved/contributing.rst | 250 ++++ docs/source/get_started.rst | 111 ++ docs/source/index.rst | 498 +++++++ docs/source/installation.rst | 205 +++ docs/source/troubleshooting.rst | 39 + docs/source/troubleshooting/experiments.rst | 53 + docs/source/troubleshooting/getting_help.rst | 20 + docs/source/troubleshooting/installation.rst | 61 + docs/source/troubleshooting/performance.rst | 69 + docs/source/troubleshooting/results.rst | 78 + .../source/troubleshooting/runtime_errors.rst | 60 + docs/source/user_guide.rst | 99 ++ docs/source/user_guide/experiments.rst | 137 ++ docs/source/user_guide/integrations.rst | 147 ++ docs/source/user_guide/introduction.rst | 179 +++ docs/source/user_guide/migration.rst | 361 +++++ docs/source/user_guide/optimizers.rst | 325 +++++ docs/source/user_guide/search_spaces.rst | 355 +++++ docs/tests/__init__.py | 1 + docs/tests/test_doc_snippets.py | 270 ++++ pyproject.toml | 12 +- requirements/requirements-test.in | 2 +- .../integrations/sklearn/opt_cv.py | 3 +- .../opt/optuna/_cmaes_optimizer.py | 5 +- 106 files changed, 10194 insertions(+), 34 deletions(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/auto-label-config.yml create mode 100644 .github/draft-changelog-config.yml create mode 100644 .github/workflows/auto-label-prs.yml create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/draft-changelog.yml create mode 100644 .readthedocs.yml create mode 100644 docs/README.md create mode 100644 docs/requirements.txt create mode 100644 docs/source/Makefile create mode 100644 docs/source/_snippets/__init__.py create mode 100644 docs/source/_snippets/conftest.py create mode 100644 docs/source/_snippets/examples/__init__.py create mode 100644 docs/source/_snippets/examples/advanced_examples.py create mode 100644 docs/source/_snippets/examples/basic_examples.py create mode 100644 docs/source/_snippets/getting_started/__init__.py create mode 100644 docs/source/_snippets/getting_started/bayesian_optimizer.py create mode 100644 docs/source/_snippets/getting_started/index_bayesian.py create mode 100644 docs/source/_snippets/getting_started/index_custom_function.py create mode 100644 docs/source/_snippets/getting_started/index_sklearn_tuning.py create mode 100644 docs/source/_snippets/getting_started/quick_start.py create mode 100644 docs/source/_snippets/getting_started/sklearn_optcv.py create mode 100644 docs/source/_snippets/getting_started/sklearn_random_forest.py create mode 100644 docs/source/_snippets/installation/__init__.py create mode 100644 docs/source/_snippets/installation/verify_installation.py create mode 100644 docs/source/_snippets/user_guide/__init__.py create mode 100644 docs/source/_snippets/user_guide/experiments.py create mode 100644 docs/source/_snippets/user_guide/integrations.py create mode 100644 docs/source/_snippets/user_guide/introduction.py create mode 100644 docs/source/_snippets/user_guide/optimizers.py create mode 100644 docs/source/_static/css/custom.css create mode 100644 docs/source/_static/fields.css create mode 100644 docs/source/_static/images/badges/generate_badges.py create mode 100644 docs/source/_static/images/badges/license.svg create mode 100644 docs/source/_static/images/badges/python.svg create mode 100644 docs/source/_static/images/badges/sponsor.svg create mode 100644 docs/source/_static/images/badges/version.svg create mode 100644 docs/source/_static/images/bayes_convex.gif create mode 100644 docs/source/_static/images/logo.png create mode 100644 docs/source/_static/images/navbar_logo.png create mode 100644 docs/source/_static/images/navbar_logo.svg create mode 100644 docs/source/_static/images/navbar_logo_dark.svg create mode 100644 docs/source/_templates/class.rst create mode 100644 docs/source/_templates/function.rst create mode 100644 docs/source/_templates/layout.html create mode 100644 docs/source/about.rst create mode 100644 docs/source/about/history.rst create mode 100644 docs/source/about/license.rst create mode 100644 docs/source/about/team.rst create mode 100644 docs/source/api_reference.rst create mode 100644 docs/source/api_reference/base.rst create mode 100644 docs/source/api_reference/experiments_benchmarks.rst create mode 100644 docs/source/api_reference/experiments_function.rst create mode 100644 docs/source/api_reference/experiments_integrations.rst create mode 100644 docs/source/api_reference/optimizers.rst create mode 100644 docs/source/api_reference/sklearn_integration.rst create mode 100644 docs/source/api_reference/utilities.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/examples.rst create mode 100644 docs/source/examples/general.rst create mode 100644 docs/source/examples/global_search.rst create mode 100644 docs/source/examples/integrations.rst create mode 100644 docs/source/examples/interactive_tutorial.rst create mode 100644 docs/source/examples/local_search.rst create mode 100644 docs/source/examples/optuna_backend.rst create mode 100644 docs/source/examples/other.rst create mode 100644 docs/source/examples/population_based.rst create mode 100644 docs/source/examples/sequential_model_based.rst create mode 100644 docs/source/examples/sklearn_backend.rst create mode 100644 docs/source/faq.rst create mode 100644 docs/source/faq/advanced_usage.rst create mode 100644 docs/source/faq/common_issues.rst create mode 100644 docs/source/faq/getting_help.rst create mode 100644 docs/source/faq/getting_started.rst create mode 100644 docs/source/faq/integrations.rst create mode 100644 docs/source/faq/search_space.rst create mode 100644 docs/source/get_involved.rst create mode 100644 docs/source/get_involved/code_of_conduct.rst create mode 100644 docs/source/get_involved/contributing.rst create mode 100644 docs/source/get_started.rst create mode 100644 docs/source/index.rst create mode 100644 docs/source/installation.rst create mode 100644 docs/source/troubleshooting.rst create mode 100644 docs/source/troubleshooting/experiments.rst create mode 100644 docs/source/troubleshooting/getting_help.rst create mode 100644 docs/source/troubleshooting/installation.rst create mode 100644 docs/source/troubleshooting/performance.rst create mode 100644 docs/source/troubleshooting/results.rst create mode 100644 docs/source/troubleshooting/runtime_errors.rst create mode 100644 docs/source/user_guide.rst create mode 100644 docs/source/user_guide/experiments.rst create mode 100644 docs/source/user_guide/integrations.rst create mode 100644 docs/source/user_guide/introduction.rst create mode 100644 docs/source/user_guide/migration.rst create mode 100644 docs/source/user_guide/optimizers.rst create mode 100644 docs/source/user_guide/search_spaces.rst create mode 100644 docs/tests/__init__.py create mode 100644 docs/tests/test_doc_snippets.py diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..9ffd37b1 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,37 @@ +## Description + + + +## Related Issues + + + +## Type of Change + + + +- [ ] `[Fix]` - Bug fix (non-breaking change fixing an issue) +- [ ] `[Feature]` - New feature (non-breaking change adding functionality) +- [ ] `[Refactor]` - Code refactoring (no functional changes) +- [ ] `[Release]` - Release preparation +- [ ] `[Hotfix]` - Critical fix for production + +## How was this solved? + + + +## Checklist + +- [ ] PR title includes appropriate tag: `[Fix]`, `[Feature]`, `[Refactor]`, `[Release]`, or `[Hotfix]` +- [ ] Linked to related issue (if applicable) +- [ ] Code passes `make check` (lint, format, isort) +- [ ] Tests added/updated for changes (if applicable) +- [ ] Documentation updated (if applicable) + +## Testing + + + +## Additional Notes + + diff --git a/.github/auto-label-config.yml b/.github/auto-label-config.yml new file mode 100644 index 00000000..3ffc2ac0 --- /dev/null +++ b/.github/auto-label-config.yml @@ -0,0 +1,41 @@ +# ============================================================================= +# Auto-Label Configuration +# ============================================================================= +# +# Used by: auto-label-prs.yml +# +# OUTPUT: +# PRs get labels based on: +# - Title prefix: [Fix] → "Fix" label +# - Changed files: docs/** → "documentation" label +# - Branch name: dependabot/* → "dependencies" label +# +# ============================================================================= + +autolabeler: + - label: 'documentation' + files: + - 'docs/**/*' + - '*.md' + branch: + - '/docs?\/.+/' + - label: 'Fix' + title: + - '/^\[Fix\]/i' + - label: 'Feature' + title: + - '/^\[Feature\]/i' + - label: 'Refactor' + title: + - '/^\[Refactor\]/i' + - label: 'Release' + title: + - '/^\[Release\]/i' + - label: 'Hotfix' + title: + - '/^\[Hotfix\]/i' + - label: 'dependencies' + files: + - 'pyproject.toml' + branch: + - '/dependabot\/.+/' diff --git a/.github/draft-changelog-config.yml b/.github/draft-changelog-config.yml new file mode 100644 index 00000000..90a0fde0 --- /dev/null +++ b/.github/draft-changelog-config.yml @@ -0,0 +1,67 @@ +# ============================================================================= +# Draft Changelog Configuration +# ============================================================================= +# +# Used by: draft-changelog.yml +# +# OUTPUT: +# A draft release in GitHub Releases containing: +# - Title: v5.1.0 (based on version-resolver) +# - Body: Grouped list of PRs (based on categories) +# +# ============================================================================= + +name-template: 'v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' + +template: | + ## What's Changed + + $CHANGES + + **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION + +categories: + - title: 'New Features' + labels: + - 'Feature' + - 'enhancement' + - title: 'Bug Fixes' + labels: + - 'Fix' + - 'bug' + - 'Hotfix' + - title: 'Refactoring' + labels: + - 'Refactor' + - 'refactoring' + - title: 'Documentation' + labels: + - 'documentation' + - 'docs' + - title: 'Maintenance' + labels: + - 'maintenance' + - 'dependencies' + - 'Release' + +version-resolver: + major: + labels: + - 'major' + - 'breaking' + minor: + labels: + - 'minor' + - 'Feature' + patch: + labels: + - 'patch' + - 'Fix' + - 'Hotfix' + default: patch + +exclude-labels: + - 'skip-changelog' + - 'duplicate' + - 'invalid' diff --git a/.github/workflows/auto-label-prs.yml b/.github/workflows/auto-label-prs.yml new file mode 100644 index 00000000..280c8974 --- /dev/null +++ b/.github/workflows/auto-label-prs.yml @@ -0,0 +1,35 @@ +# ============================================================================= +# Auto-Label PRs +# ============================================================================= +# +# TRIGGER: +# When a PR is opened or updated +# +# OUTPUT: +# PR gets a label based on its title prefix: +# - [Fix] → "Fix" label +# - [Feature] → "Feature" label +# - [Refactor] → "Refactor" label +# - etc. +# +# ============================================================================= + +name: Auto-Label PRs + +on: + pull_request: + types: [opened, reopened, synchronize] + +permissions: + contents: read + pull-requests: write + +jobs: + add_labels: + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v6 + with: + config-name: auto-label-config.yml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000..09d0e4f7 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,90 @@ +name: Documentation + +on: + push: + branches: + - main + - dev + paths: + - 'docs/**' + - 'src/**' + - '.github/workflows/docs.yml' + pull_request: + branches: + - main + - dev + paths: + - 'docs/**' + - 'src/**' + - '.github/workflows/docs.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test-snippets: + name: test-doc-snippets + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12'] + fail-fast: false + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e ".[all_extras,test]" + python -m pip install --no-cache-dir -r docs/requirements.txt + + - name: Show dependencies + run: python -m pip list + + - name: Test documentation snippets + run: | + python -m pytest docs/tests/test_doc_snippets.py -v --tb=short + + build-docs: + name: build-docs + runs-on: ubuntu-latest + needs: test-snippets + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e ".[all_extras]" + python -m pip install --no-cache-dir -r docs/requirements.txt + + - name: Show dependencies + run: python -m pip list + + - name: Build documentation + run: | + cd docs && sphinx-build -b html source build/html -W --keep-going + + - name: Run doctest + run: | + cd docs && sphinx-build -b doctest source build/doctest || true + + - name: Upload documentation artifact + uses: actions/upload-artifact@v4 + with: + name: docs-html + path: docs/build/html/ + retention-days: 7 diff --git a/.github/workflows/draft-changelog.yml b/.github/workflows/draft-changelog.yml new file mode 100644 index 00000000..b4e245c7 --- /dev/null +++ b/.github/workflows/draft-changelog.yml @@ -0,0 +1,39 @@ +# ============================================================================= +# Draft Changelog +# ============================================================================= +# +# TRIGGER: +# When code is merged/pushed to main +# +# OUTPUT: +# A draft release in GitHub Releases section containing: +# - Grouped list of merged PRs (Features, Bug Fixes, etc.) +# - Suggested next version number +# +# DOES NOT: +# - Publish the release (you must click "Publish" manually) +# - Create git tags +# - Upload to PyPI +# +# ============================================================================= + +name: Draft Changelog + +on: + push: + branches: + - main + +permissions: + contents: read + pull-requests: write + +jobs: + update_draft: + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter@v6 + with: + config-name: draft-changelog-config.yml + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5476c0cf..b8a90b68 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,25 +15,118 @@ concurrency: cancel-in-progress: true jobs: + # =========================================================================== + # STAGE 0: Detect what changed (runs immediately) + # =========================================================================== + detect-changes: + name: detect-changes + runs-on: ubuntu-latest + outputs: + core: ${{ steps.filter.outputs.core }} + sklearn: ${{ steps.filter.outputs.sklearn }} + sktime: ${{ steps.filter.outputs.sktime }} + skpro: ${{ steps.filter.outputs.skpro }} + utils: ${{ steps.filter.outputs.utils }} + docs: ${{ steps.filter.outputs.docs }} + examples: ${{ steps.filter.outputs.examples }} + any_src: ${{ steps.filter.outputs.any_src }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Detect changed paths + id: filter + run: | + if [ "${{ github.event_name }}" == "push" ]; then + BASE_SHA="${{ github.event.before }}" + # Handle initial push where before is all zeros + if [ "$BASE_SHA" == "0000000000000000000000000000000000000000" ]; then + BASE_SHA="HEAD~1" + fi + else + BASE_SHA="${{ github.event.pull_request.base.sha }}" + fi + + CHANGED_FILES=$(git diff --name-only "$BASE_SHA" "${{ github.sha }}" || echo "") + echo "Changed files:" + echo "$CHANGED_FILES" + + # Core: base module, main hyperactive files, or general tests + if echo "$CHANGED_FILES" | grep -qE "^src/hyperactive/(base|tests|__init__|hyperactive)"; then + echo "core=true" >> $GITHUB_OUTPUT + else + echo "core=false" >> $GITHUB_OUTPUT + fi + + # sklearn integration + if echo "$CHANGED_FILES" | grep -q "^src/hyperactive/integrations/sklearn"; then + echo "sklearn=true" >> $GITHUB_OUTPUT + else + echo "sklearn=false" >> $GITHUB_OUTPUT + fi + + # sktime integration + if echo "$CHANGED_FILES" | grep -q "^src/hyperactive/integrations/sktime"; then + echo "sktime=true" >> $GITHUB_OUTPUT + else + echo "sktime=false" >> $GITHUB_OUTPUT + fi + + # skpro integration + if echo "$CHANGED_FILES" | grep -q "^src/hyperactive/integrations/skpro"; then + echo "skpro=true" >> $GITHUB_OUTPUT + else + echo "skpro=false" >> $GITHUB_OUTPUT + fi + + # utils + if echo "$CHANGED_FILES" | grep -q "^src/hyperactive/utils"; then + echo "utils=true" >> $GITHUB_OUTPUT + else + echo "utils=false" >> $GITHUB_OUTPUT + fi + + # docs + if echo "$CHANGED_FILES" | grep -qE "^docs/|\.rst$|\.md$"; then + echo "docs=true" >> $GITHUB_OUTPUT + else + echo "docs=false" >> $GITHUB_OUTPUT + fi + + # examples + if echo "$CHANGED_FILES" | grep -q "^examples/"; then + echo "examples=true" >> $GITHUB_OUTPUT + else + echo "examples=false" >> $GITHUB_OUTPUT + fi + + # any source code + if echo "$CHANGED_FILES" | grep -q "^src/"; then + echo "any_src=true" >> $GITHUB_OUTPUT + else + echo "any_src=false" >> $GITHUB_OUTPUT + fi + + # =========================================================================== + # STAGE 1: Fast checks (code-quality) + # =========================================================================== code-quality: name: code-quality runs-on: ubuntu-latest steps: - - name: repository checkout step - uses: actions/checkout@v5 + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 - - name: python environment step + - name: Set up Python 3.11 uses: actions/setup-python@v5 with: python-version: "3.11" - - name: install pre-commit - run: python3 -m pip install pre-commit - - - name: Checkout code - uses: actions/checkout@v5 - with: - fetch-depth: 0 + - name: Install pre-commit + run: python -m pip install --no-cache-dir pre-commit - name: Get changed files id: changed-files @@ -53,8 +146,162 @@ jobs: echo "No changed files to check." fi + # =========================================================================== + # STAGE 2: Targeted tests (only for changed areas, fast feedback) + # =========================================================================== + targeted-core: + name: targeted-core + needs: [code-quality, detect-changes] + if: needs.detect-changes.outputs.core == 'true' || needs.detect-changes.outputs.any_src == 'false' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[test] + + - name: Run core tests + run: | + python -m pytest src/hyperactive/base/tests/ src/hyperactive/tests/ -v -p no:warnings + + targeted-sklearn: + name: targeted-sklearn + needs: [code-quality, detect-changes] + if: needs.detect-changes.outputs.sklearn == 'true' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[all_extras,test] + + - name: Run sklearn integration tests + run: | + python -m pytest src/hyperactive/integrations/sklearn/tests/ -v -p no:warnings + + targeted-sktime: + name: targeted-sktime + needs: [code-quality, detect-changes] + if: needs.detect-changes.outputs.sktime == 'true' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[sktime-integration,test] + + - name: Run sktime integration tests + run: | + python -m pytest src/hyperactive/integrations/sktime/tests/ -v -p no:warnings + + targeted-skpro: + name: targeted-skpro + needs: [code-quality, detect-changes] + if: needs.detect-changes.outputs.skpro == 'true' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[sktime-integration,test] + + - name: Run skpro integration tests + run: | + python -m pytest src/hyperactive/integrations/skpro/tests/ -v -p no:warnings + + targeted-utils: + name: targeted-utils + needs: [code-quality, detect-changes] + if: needs.detect-changes.outputs.utils == 'true' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[test,test_parallel_backends] + + - name: Run utils tests + run: | + python -m pytest src/hyperactive/utils/tests/ -v -p no:warnings + + # Gate job: passes if all targeted tests pass OR are skipped (not failed) + targeted-tests-gate: + name: targeted-tests-gate + needs: [targeted-core, targeted-sklearn, targeted-sktime, targeted-skpro, targeted-utils] + if: always() + runs-on: ubuntu-latest + steps: + - name: Check targeted test results + run: | + echo "Core: ${{ needs.targeted-core.result }}" + echo "Sklearn: ${{ needs.targeted-sklearn.result }}" + echo "Sktime: ${{ needs.targeted-sktime.result }}" + echo "Skpro: ${{ needs.targeted-skpro.result }}" + echo "Utils: ${{ needs.targeted-utils.result }}" + + # Fail if any targeted test failed (not skipped) + if [[ "${{ needs.targeted-core.result }}" == "failure" ]] || \ + [[ "${{ needs.targeted-sklearn.result }}" == "failure" ]] || \ + [[ "${{ needs.targeted-sktime.result }}" == "failure" ]] || \ + [[ "${{ needs.targeted-skpro.result }}" == "failure" ]] || \ + [[ "${{ needs.targeted-utils.result }}" == "failure" ]]; then + echo "One or more targeted tests failed" + exit 1 + fi + echo "All targeted tests passed or were skipped" + + # =========================================================================== + # STAGE 3: Full test matrix (only after targeted tests pass) + # =========================================================================== test-no-extras: name: test-no-extras + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' strategy: matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] @@ -78,9 +325,8 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip - python -m pip install build - + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir build make install-no-extras-for-test - name: Show dependencies @@ -92,6 +338,8 @@ jobs: test-all-extras: name: test-all-extras + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' strategy: matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] @@ -115,9 +363,8 @@ jobs: - name: Install dependencies run: | - python -m pip install --upgrade pip - python -m pip install build - + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir build make install-all-extras-for-test - name: Show dependencies @@ -129,6 +376,8 @@ jobs: test-sklearn-versions: name: test-sklearn-${{ matrix.sklearn-version }}-python-${{ matrix.python-version }} + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' runs-on: ubuntu-latest strategy: @@ -145,20 +394,77 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install dependencies for scikit-learn ${{ matrix.sklearn-version }} + - name: Install dependencies run: | - python -m pip install --upgrade pip - python -m pip install .[all_extras,test] scikit-learn==${{ matrix.sklearn-version }}.* + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[all_extras,test] scikit-learn==${{ matrix.sklearn-version }}.* - name: Show dependencies run: python -m pip list - - name: Run sklearn integration tests for ${{ matrix.sklearn-version }} + - name: Run sklearn integration tests run: | python -m pytest -x -p no:warnings src/hyperactive/integrations/sklearn/ + coverage: + name: coverage + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[all_extras,test,test_parallel_backends,sktime-integration] + + - name: Run tests with coverage + run: | + python -m pytest src/hyperactive/ --cov=src/hyperactive --cov-report=xml --cov-report=term -p no:warnings + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v5 + with: + files: ./coverage.xml + fail_ci_if_error: false + verbose: true + + doctest-examples: + name: doctest-examples + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' + runs-on: ubuntu-latest + timeout-minutes: 20 + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install dependencies + run: | + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir -e .[all_extras,test,sktime-integration] + + - name: Run docstring example tests + run: | + python -m pytest --doctest-modules src/hyperactive/ -v -p no:warnings + test-examples: name: test-examples + needs: [targeted-tests-gate] + if: always() && needs.targeted-tests-gate.result == 'success' runs-on: ubuntu-latest timeout-minutes: 15 @@ -195,8 +501,8 @@ jobs: - name: Install dependencies if: steps.check-examples.outputs.examples_changed == 'true' run: | - python -m pip install --upgrade pip - python -m pip install build + python -m pip install --no-cache-dir --upgrade pip + python -m pip install --no-cache-dir build make install-all-extras-for-test - name: Show dependencies diff --git a/.gitignore b/.gitignore index 5bc0c596..3e7b58f9 100644 --- a/.gitignore +++ b/.gitignore @@ -32,7 +32,6 @@ MANIFEST # before PyInstaller builds the exe, so as to inject date/other infos into it. *.manifest *.spec -requirements*.txt # Installer logs pip-log.txt @@ -75,6 +74,8 @@ instance/ # Sphinx documentation docs/_build/ +docs/build/ +docs/source/api_reference/auto_generated/ # PyBuilder target/ diff --git a/.readthedocs.yml b/.readthedocs.yml new file mode 100644 index 00000000..ef2552cd --- /dev/null +++ b/.readthedocs.yml @@ -0,0 +1,19 @@ +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +version: 2 + +python: + install: + - method: pip + path: . + extra_requirements: + - docs + +build: + os: ubuntu-22.04 + tools: + python: "3.12" + +sphinx: + configuration: docs/source/conf.py diff --git a/Makefile b/Makefile index 3801fe58..73cced08 100644 --- a/Makefile +++ b/Makefile @@ -78,19 +78,19 @@ uninstall: rm -fr build dist *.egg-info install-test-requirements: - python -m pip install .[test] + python -m pip install --no-cache-dir .[test] install-build-requirements: - python -m pip install .[build] + python -m pip install --no-cache-dir .[build] install-all-extras: - python -m pip install .[all_extras] + python -m pip install --no-cache-dir .[all_extras] install-no-extras-for-test: - python -m pip install .[test] + python -m pip install --no-cache-dir .[test] install-all-extras-for-test: - python -m pip install .[all_extras,test,test_parallel_backends,sktime-integration] + python -m pip install --no-cache-dir .[all_extras,test,test_parallel_backends,sktime-integration] install-editable: pip install -e . diff --git a/README.md b/README.md index 13dcf1e6..195c37ec 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ package alongside direct interfaces to Optuna and scikit-learn optimizers, suppo --- -| | [Overview](https://github.com/SimonBlanke/Hyperactive#overview) • [Installation](https://github.com/SimonBlanke/Hyperactive#installation) • [Tutorial](https://nbviewer.org/github/SimonBlanke/hyperactive-tutorial/blob/main/notebooks/hyperactive_tutorial.ipynb) • [API reference](https://simonblanke.github.io/hyperactive-documentation/5.0/) • [Citation](https://github.com/SimonBlanke/Hyperactive#citing-hyperactive) | +| | [Overview](https://github.com/SimonBlanke/Hyperactive#overview) • [Installation](https://github.com/SimonBlanke/Hyperactive#installation) • [Tutorial](https://nbviewer.org/github/SimonBlanke/hyperactive-tutorial/blob/main/notebooks/hyperactive_tutorial.ipynb) • [API reference](https://hyperactive.readthedocs.io/en/latest/#) • [Citation](https://github.com/SimonBlanke/Hyperactive#citing-hyperactive) | |---|---| | **Open Source** | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![GC.OS Sponsored](https://img.shields.io/badge/GC.OS-Sponsored%20Project-orange.svg?style=flat&colorA=0eac92&colorB=2077b4)](https://gc-os-ai.github.io/) | | **Community** | [![Discord](https://img.shields.io/static/v1?logo=discord&label=Discord&message=chat&color=lightgreen)](https://discord.gg/7uKdHfdcJG) [![LinkedIn](https://img.shields.io/static/v1?logo=linkedin&label=LinkedIn&message=news&color=lightblue)](https://www.linkedin.com/company/german-center-for-open-source-ai) | diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..aaf9f71a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,92 @@ +# Hyperactive Documentation + +This directory contains the Sphinx-based documentation for Hyperactive. + +## Building the Documentation + +### Prerequisites + +Install the required dependencies: + +```bash +pip install -r requirements.txt +``` + +You'll also need to have Hyperactive installed: + +```bash +pip install -e .. # Install Hyperactive in development mode from parent directory +``` + +### Building HTML Documentation + +From the `source` directory: + +```bash +cd source +make clean # Clean previous builds +make html # Build HTML documentation +``` + +The built documentation will be in `build/html/`. Open `build/html/index.html` in your browser to view. + +### Live Preview with Auto-Rebuild + +For development, you can use auto-rebuild mode: + +```bash +cd source +make autobuild +``` + +This will start a local server (typically at http://127.0.0.1:8000) that automatically rebuilds when you make changes to the documentation source files. + +## Documentation Structure + +- `source/` - Documentation source files + - `conf.py` - Sphinx configuration + - `index.rst` - Main landing page + - `api_reference/` - API reference documentation (auto-generated) + - `user_guide/` - User guide pages (currently stubs) + - `examples/` - Example notebooks and galleries (currently stubs) + - `get_involved/` - Contributing guidelines (currently stubs) + - `about/` - About pages (currently stubs) + - `_templates/` - Custom Sphinx templates + - `_static/` - Static files (CSS, images, etc.) +- `build/` - Built documentation (generated, not tracked in git) + +## Current Status + +The documentation is currently set up with: + +- ✅ Full API reference auto-generated from docstrings +- ✅ Sphinx configuration following SK-Time's approach +- ✅ pydata_sphinx_theme for consistent look with scientific Python ecosystem +- ✅ Structural placeholders for future static content + +Static pages (User Guide, Examples, etc.) are currently placeholder stubs marked "under construction" that can be filled in later. + +## Adding New Content + +### API Reference + +The API reference is automatically generated from docstrings. To update: + +1. Ensure your class/function has proper NumPy-style docstrings +2. Add the class/function to the appropriate `api_reference/*.rst` file using the `autosummary` directive +3. Rebuild the documentation + +### Static Pages + +To add content to the placeholder pages: + +1. Edit the corresponding `.rst` or `.md` file in the appropriate directory +2. Remove the "under construction" note +3. Add your content using reStructuredText or Markdown syntax +4. Rebuild to see your changes + +## Notes + +- All API documentation is 100% auto-generated from source code docstrings +- The structure allows for easy addition of static content in the future +- Build warnings about missing references are normal during early development diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000..3cf5a52e --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,19 @@ +# Requirements for building Hyperactive documentation + +# Core Sphinx and extensions +sphinx>=7.0.0 +sphinx-autobuild +sphinx-copybutton +sphinx-design +sphinx-issues +myst-parser +numpydoc + +# Theme +pydata-sphinx-theme + +# For intersphinx linking +# These need to be importable to build docs +numpy +pandas +scikit-learn diff --git a/docs/source/Makefile b/docs/source/Makefile new file mode 100644 index 00000000..46aa97ff --- /dev/null +++ b/docs/source/Makefile @@ -0,0 +1,31 @@ +# Minimal makefile for Sphinx documentation + +# You can set these variables from the command line. +SPHINXBUILD = sphinx-build +SPHINXOPTS = -j auto +SPHINXAUTOBUILD = sphinx-autobuild +SPHINXAUTOOPTS = -j auto +SOURCEDIR = . +BUILDDIR = ../build +HYPERACTIVEDIR = ../../src/hyperactive + +.PHONY: help build autobuild + +# "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" + +clean: + rm -rf $(BUILDDIR) + rm -rf api_reference/auto_generated + @echo "Deleted directory $(BUILDDIR) and auto_generated files." + +# $(O) is meant as a shortcut for custom options. +# i.e to log stderr into a separate file: +# make build O="--no-color 2> build_warnings.log" +html: + $(SPHINXBUILD) -M html "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +# $(O) is meant as a shortcut for custom options. +autobuild: + $(SPHINXAUTOBUILD) "$(SOURCEDIR)" "$(BUILDDIR)/html" -d "$(BUILDDIR)/doctrees" $(SPHINXAUTOOPTS) $(O) --watch "$(HYPERACTIVEDIR)" --re-ignore ".*\.json" diff --git a/docs/source/_snippets/__init__.py b/docs/source/_snippets/__init__.py new file mode 100644 index 00000000..e69a90c9 --- /dev/null +++ b/docs/source/_snippets/__init__.py @@ -0,0 +1,12 @@ +"""Documentation code snippets. + +This package contains testable Python code snippets that are included in the +documentation using Sphinx's ``literalinclude`` directive. Each snippet file +can be executed directly to verify it works correctly. + +The snippets are organized by documentation section: +- getting_started/: Quick start examples +- installation/: Installation verification examples +- user_guide/: In-depth tutorial examples +- examples/: Gallery examples +""" diff --git a/docs/source/_snippets/conftest.py b/docs/source/_snippets/conftest.py new file mode 100644 index 00000000..0994864b --- /dev/null +++ b/docs/source/_snippets/conftest.py @@ -0,0 +1,46 @@ +"""Pytest configuration for documentation snippets. + +This conftest provides shared fixtures that snippet files can use for testing. +The fixtures ensure consistent behavior across all snippet tests. +""" + +import numpy as np +import pytest + + +@pytest.fixture +def simple_search_space(): + """Simple search space for basic examples.""" + return { + "x": np.arange(-5, 5, 0.1), + "y": np.arange(-5, 5, 0.1), + } + + +@pytest.fixture +def simple_objective(): + """Simple objective function for basic examples.""" + + def objective(params): + x = params["x"] + y = params["y"] + return -(x**2 + y**2) + + return objective + + +@pytest.fixture +def sklearn_data(): + """Load iris dataset for sklearn examples.""" + from sklearn.datasets import load_iris + + return load_iris(return_X_y=True) + + +@pytest.fixture +def sklearn_train_test_split(sklearn_data): + """Split sklearn data into train and test sets.""" + from sklearn.model_selection import train_test_split + + X, y = sklearn_data + return train_test_split(X, y, test_size=0.2, random_state=42) diff --git a/docs/source/_snippets/examples/__init__.py b/docs/source/_snippets/examples/__init__.py new file mode 100644 index 00000000..581dc357 --- /dev/null +++ b/docs/source/_snippets/examples/__init__.py @@ -0,0 +1 @@ +"""Example gallery code snippets for documentation.""" diff --git a/docs/source/_snippets/examples/advanced_examples.py b/docs/source/_snippets/examples/advanced_examples.py new file mode 100644 index 00000000..8f2627df --- /dev/null +++ b/docs/source/_snippets/examples/advanced_examples.py @@ -0,0 +1,77 @@ +"""Advanced examples for the examples.rst page. + +This snippet file contains runnable examples demonstrating Hyperactive's +advanced functionality like warm starting and optimizer comparison. +""" + +from sklearn.datasets import load_wine +from sklearn.ensemble import RandomForestClassifier + +from hyperactive.experiment.integrations import SklearnCvExperiment +from hyperactive.opt.gfo import HillClimbing + +# Setup common fixtures for examples +X, y = load_wine(return_X_y=True) +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(random_state=42), + X=X, + y=y, + cv=3, +) +search_space = { + "n_estimators": list(range(10, 101, 10)), + "max_depth": list(range(1, 11)), + "min_samples_split": list(range(2, 11)), +} + + +# [start:warm_starting] + +# Previous best parameters +warm_start_points = [ + {"n_estimators": 100, "max_depth": 10, "min_samples_split": 5}, +] + +optimizer = HillClimbing( + search_space=search_space, + n_iter=40, + experiment=experiment, + initialize={"warm_start": warm_start_points}, +) +best_params = optimizer.solve() +# [end:warm_starting] + + +# [start:comparing_optimizers] +from hyperactive.opt.gfo import ( + BayesianOptimizer, + HillClimbing, + ParticleSwarmOptimizer, + RandomSearch, +) + +optimizers = { + "HillClimbing": HillClimbing, + "RandomSearch": RandomSearch, + "Bayesian": BayesianOptimizer, + "ParticleSwarm": ParticleSwarmOptimizer, +} + +results = {} +for name, OptClass in optimizers.items(): + optimizer = OptClass( + search_space=search_space, + n_iter=50, + experiment=experiment, + random_state=42, + ) + best = optimizer.solve() + score, _ = experiment.score(best) + results[name] = {"params": best, "score": score} + print(f"{name}: score={score:.4f}") +# [end:comparing_optimizers] + + +if __name__ == "__main__": + print("Advanced examples passed!") + print(f"Best optimizer results: {results}") diff --git a/docs/source/_snippets/examples/basic_examples.py b/docs/source/_snippets/examples/basic_examples.py new file mode 100644 index 00000000..c6bff6ba --- /dev/null +++ b/docs/source/_snippets/examples/basic_examples.py @@ -0,0 +1,73 @@ +"""Basic examples for the examples.rst page. + +This snippet file contains runnable examples demonstrating Hyperactive's +basic functionality including custom function and sklearn optimization. +""" + +import numpy as np + +# [start:custom_function] +from hyperactive.opt.gfo import HillClimbing + + +def objective(params): + x = params["x"] + y = params["y"] + return -(x**2 + y**2) # Maximize (minimize the parabola) + + +search_space = { + "x": np.arange(-5, 5, 0.1), + "y": np.arange(-5, 5, 0.1), +} + +optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +best_params = optimizer.solve() +print(f"Best parameters: {best_params}") +# [end:custom_function] + + +# [start:sklearn_tuning] +from sklearn.datasets import load_wine +from sklearn.ensemble import RandomForestClassifier + +from hyperactive.experiment.integrations import SklearnCvExperiment +from hyperactive.opt.gfo import HillClimbing + +# Load data +X, y = load_wine(return_X_y=True) + +# Create experiment +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(random_state=42), + X=X, + y=y, + cv=3, +) + +# Define search space +search_space = { + "n_estimators": list(range(10, 201)), + "max_depth": list(range(1, 21)), + "min_samples_split": list(range(2, 21)), + "min_samples_leaf": list(range(1, 11)), +} + +# Optimize +optimizer = HillClimbing( + search_space=search_space, + n_iter=40, + random_state=42, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:sklearn_tuning] + + +if __name__ == "__main__": + print("Basic examples passed!") + print(f"Custom function best: {best_params}") diff --git a/docs/source/_snippets/getting_started/__init__.py b/docs/source/_snippets/getting_started/__init__.py new file mode 100644 index 00000000..d3edc1cc --- /dev/null +++ b/docs/source/_snippets/getting_started/__init__.py @@ -0,0 +1 @@ +"""Getting started code snippets for documentation.""" diff --git a/docs/source/_snippets/getting_started/bayesian_optimizer.py b/docs/source/_snippets/getting_started/bayesian_optimizer.py new file mode 100644 index 00000000..db8cf2b0 --- /dev/null +++ b/docs/source/_snippets/getting_started/bayesian_optimizer.py @@ -0,0 +1,41 @@ +"""Bayesian Optimizer example for documentation. + +This snippet demonstrates the usage of BayesianOptimizer for +optimization problems. It is included in get_started.rst. +""" + +# [start:full_example] +# [end:full_example] +# Need to define experiment and search_space for standalone execution +import numpy as np + +from hyperactive.opt.gfo import BayesianOptimizer + + +def experiment(params): + """Simple objective function.""" + x = params["x"] + y = params["y"] + return -(x**2 + y**2) + + +search_space = { + "x": np.arange(-5, 5, 0.1), + "y": np.arange(-5, 5, 0.1), +} + +# [start:optimizer_usage] +optimizer = BayesianOptimizer( + search_space=search_space, + n_iter=30, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:optimizer_usage] + +if __name__ == "__main__": + print(f"Best parameters: {best_params}") + # Verify the optimization found parameters close to (0, 0) + assert abs(best_params["x"]) < 2.0, f"Expected x near 0, got {best_params['x']}" + assert abs(best_params["y"]) < 2.0, f"Expected y near 0, got {best_params['y']}" + print("Bayesian optimizer example passed!") diff --git a/docs/source/_snippets/getting_started/index_bayesian.py b/docs/source/_snippets/getting_started/index_bayesian.py new file mode 100644 index 00000000..98cc7e09 --- /dev/null +++ b/docs/source/_snippets/getting_started/index_bayesian.py @@ -0,0 +1,37 @@ +"""Bayesian optimization example for index page. + +This snippet demonstrates Bayesian optimization with a more complex +objective function shown on the landing page. It is included in index.rst. +""" + +# [start:full_example] +import numpy as np + +from hyperactive.opt.gfo import BayesianOptimizer + + +def complex_objective(params): + x = params["x"] + y = params["y"] + return -((x - 2) ** 2 + (y + 1) ** 2) + np.sin(x * y) + + +search_space = { + "x": np.linspace(-5, 5, 100), + "y": np.linspace(-5, 5, 100), +} + +optimizer = BayesianOptimizer( + search_space=search_space, + n_iter=50, + experiment=complex_objective, +) +best_params = optimizer.solve() +# [end:full_example] + +if __name__ == "__main__": + print(f"Best parameters: {best_params}") + # Verify we got valid parameters + assert "x" in best_params + assert "y" in best_params + print("Index Bayesian example passed!") diff --git a/docs/source/_snippets/getting_started/index_custom_function.py b/docs/source/_snippets/getting_started/index_custom_function.py new file mode 100644 index 00000000..ca7a9e24 --- /dev/null +++ b/docs/source/_snippets/getting_started/index_custom_function.py @@ -0,0 +1,39 @@ +"""Custom function example for index page. + +This snippet demonstrates the basic custom function optimization +shown on the landing page. It is included in index.rst. +""" + +# [start:full_example] +import numpy as np + +from hyperactive.opt.gfo import HillClimbing + + +# Define your objective function +def objective(params): + x, y = params["x"], params["y"] + return -(x**2 + y**2) # Maximize (minimize negative) + + +# Define the search space +search_space = { + "x": np.arange(-5, 5, 0.1), + "y": np.arange(-5, 5, 0.1), +} + +# Create optimizer and solve +optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +best_params = optimizer.solve() +print(f"Best parameters: {best_params}") +# [end:full_example] + +if __name__ == "__main__": + # Verify the optimization found parameters close to (0, 0) + assert abs(best_params["x"]) < 1.0, f"Expected x near 0, got {best_params['x']}" + assert abs(best_params["y"]) < 1.0, f"Expected y near 0, got {best_params['y']}" + print("Index custom function example passed!") diff --git a/docs/source/_snippets/getting_started/index_sklearn_tuning.py b/docs/source/_snippets/getting_started/index_sklearn_tuning.py new file mode 100644 index 00000000..6080c43c --- /dev/null +++ b/docs/source/_snippets/getting_started/index_sklearn_tuning.py @@ -0,0 +1,35 @@ +"""Scikit-learn tuning example for index page. + +This snippet demonstrates sklearn integration using OptCV +shown on the landing page. It is included in index.rst. +""" + +# [start:full_example] +from sklearn.datasets import load_iris +from sklearn.model_selection import train_test_split +from sklearn.svm import SVC + +from hyperactive.integrations.sklearn import OptCV +from hyperactive.opt.gfo import HillClimbing + +# Load data +X, y = load_iris(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y) + +# Define optimizer with search space +search_space = {"kernel": ["linear", "rbf"], "C": [0.1, 1, 10]} +optimizer = HillClimbing(search_space=search_space, n_iter=20) + +# Create tuned estimator and fit +tuned_svc = OptCV(SVC(), optimizer) +tuned_svc.fit(X_train, y_train) + +print(f"Best params: {tuned_svc.best_params_}") +# [end:full_example] + +if __name__ == "__main__": + # Verify we got valid results + assert hasattr(tuned_svc, "best_params_") + assert "kernel" in tuned_svc.best_params_ + assert "C" in tuned_svc.best_params_ + print("Index sklearn tuning example passed!") diff --git a/docs/source/_snippets/getting_started/quick_start.py b/docs/source/_snippets/getting_started/quick_start.py new file mode 100644 index 00000000..7f342fce --- /dev/null +++ b/docs/source/_snippets/getting_started/quick_start.py @@ -0,0 +1,41 @@ +"""Quick start example for documentation. + +This snippet demonstrates the basic usage of Hyperactive for optimizing +a custom objective function. It is included in get_started.rst. +""" + +# [start:full_example] +import numpy as np + +from hyperactive.opt.gfo import HillClimbing + + +# 1. Define your objective function +def objective(params): + x = params["x"] + y = params["y"] + return -(x**2 + y**2) # Hyperactive maximizes by default + + +# 2. Define the search space +search_space = { + "x": np.arange(-5, 5, 0.1), + "y": np.arange(-5, 5, 0.1), +} + +# 3. Create an optimizer and solve +optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +best_params = optimizer.solve() + +print(f"Best parameters: {best_params}") +# [end:full_example] + +if __name__ == "__main__": + # Verify the optimization found parameters close to (0, 0) + assert abs(best_params["x"]) < 1.0, f"Expected x near 0, got {best_params['x']}" + assert abs(best_params["y"]) < 1.0, f"Expected y near 0, got {best_params['y']}" + print("Quick start example passed!") diff --git a/docs/source/_snippets/getting_started/sklearn_optcv.py b/docs/source/_snippets/getting_started/sklearn_optcv.py new file mode 100644 index 00000000..307ea2b3 --- /dev/null +++ b/docs/source/_snippets/getting_started/sklearn_optcv.py @@ -0,0 +1,41 @@ +"""Scikit-learn OptCV wrapper example for documentation. + +This snippet demonstrates how to use OptCV as a drop-in replacement +for GridSearchCV. It is included in get_started.rst. +""" + +# [start:full_example] +from sklearn.datasets import load_iris +from sklearn.model_selection import train_test_split +from sklearn.svm import SVC + +from hyperactive.integrations.sklearn import OptCV +from hyperactive.opt.gfo import HillClimbing + +# Load and split data +X, y = load_iris(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# Define optimizer with search space +search_space = {"kernel": ["linear", "rbf"], "C": [0.1, 1, 10, 100]} +optimizer = HillClimbing(search_space=search_space, n_iter=20) + +# Create tuned estimator (like GridSearchCV) +tuned_svc = OptCV(SVC(), optimizer) + +# Fit and predict as usual +tuned_svc.fit(X_train, y_train) +y_pred = tuned_svc.predict(X_test) + +# Access results +print(f"Best params: {tuned_svc.best_params_}") +print(f"Best estimator: {tuned_svc.best_estimator_}") +# [end:full_example] + +if __name__ == "__main__": + # Verify we got valid results + assert hasattr(tuned_svc, "best_params_") + assert hasattr(tuned_svc, "best_estimator_") + assert "kernel" in tuned_svc.best_params_ + assert "C" in tuned_svc.best_params_ + print("Sklearn OptCV example passed!") diff --git a/docs/source/_snippets/getting_started/sklearn_random_forest.py b/docs/source/_snippets/getting_started/sklearn_random_forest.py new file mode 100644 index 00000000..10d0d1db --- /dev/null +++ b/docs/source/_snippets/getting_started/sklearn_random_forest.py @@ -0,0 +1,48 @@ +"""Scikit-learn RandomForest example for documentation. + +This snippet demonstrates how to optimize a RandomForest classifier +using Hyperactive's SklearnCvExperiment. It is included in get_started.rst. +""" + +# [start:full_example] +from sklearn.datasets import load_iris +from sklearn.ensemble import RandomForestClassifier + +from hyperactive.experiment.integrations import SklearnCvExperiment +from hyperactive.opt.gfo import HillClimbing + +# Load data +X, y = load_iris(return_X_y=True) + +# Create an experiment that handles cross-validation +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(random_state=42), + X=X, + y=y, + cv=5, +) + +# Define hyperparameter search space +search_space = { + "n_estimators": list(range(10, 200, 10)), + "max_depth": list(range(1, 20)), + "min_samples_split": list(range(2, 10)), +} + +# Optimize +optimizer = HillClimbing( + search_space=search_space, + n_iter=50, + experiment=experiment, +) +best_params = optimizer.solve() + +print(f"Best hyperparameters: {best_params}") +# [end:full_example] + +if __name__ == "__main__": + # Verify we got valid hyperparameters + assert "n_estimators" in best_params + assert "max_depth" in best_params + assert "min_samples_split" in best_params + print("Sklearn RandomForest example passed!") diff --git a/docs/source/_snippets/installation/__init__.py b/docs/source/_snippets/installation/__init__.py new file mode 100644 index 00000000..3cee52a4 --- /dev/null +++ b/docs/source/_snippets/installation/__init__.py @@ -0,0 +1 @@ +"""Installation code snippets for documentation.""" diff --git a/docs/source/_snippets/installation/verify_installation.py b/docs/source/_snippets/installation/verify_installation.py new file mode 100644 index 00000000..5a97971c --- /dev/null +++ b/docs/source/_snippets/installation/verify_installation.py @@ -0,0 +1,32 @@ +"""Installation verification snippet. + +This snippet demonstrates how to verify Hyperactive installation. +""" + +# [start:verify_installation] +import hyperactive + +print(f"Hyperactive version: {hyperactive.__version__}") + +# Quick test +import numpy as np + +from hyperactive.opt.gfo import HillClimbing + + +def objective(params): + return -(params["x"] ** 2) + + +optimizer = HillClimbing( + search_space={"x": np.arange(-5, 5, 0.1)}, + n_iter=10, + experiment=objective, +) +best = optimizer.solve() +print(f"Test optimization successful: {best}") +# [end:verify_installation] + + +if __name__ == "__main__": + print("Installation verification passed!") diff --git a/docs/source/_snippets/user_guide/__init__.py b/docs/source/_snippets/user_guide/__init__.py new file mode 100644 index 00000000..41675fba --- /dev/null +++ b/docs/source/_snippets/user_guide/__init__.py @@ -0,0 +1 @@ +"""User guide code snippets for documentation.""" diff --git a/docs/source/_snippets/user_guide/experiments.py b/docs/source/_snippets/user_guide/experiments.py new file mode 100644 index 00000000..be0c09b6 --- /dev/null +++ b/docs/source/_snippets/user_guide/experiments.py @@ -0,0 +1,231 @@ +"""Experiments page code snippets for documentation. + +This snippet file contains examples from the experiments.rst page covering +custom objectives, built-in experiments, and benchmarks. +""" + +import numpy as np + + +# [start:simple_objective] +def objective(params): + x = params["x"] + y = params["y"] + # Hyperactive MAXIMIZES this score + return -(x**2 + y**2) + + +# [end:simple_objective] + + +# [start:ackley_function] +from hyperactive.opt.gfo import BayesianOptimizer + + +# Ackley function (a common benchmark) +def ackley(params): + x = params["x"] + y = params["y"] + + term1 = -20 * np.exp(-0.2 * np.sqrt(0.5 * (x**2 + y**2))) + term2 = -np.exp(0.5 * (np.cos(2 * np.pi * x) + np.cos(2 * np.pi * y))) + result = term1 + term2 + np.e + 20 + + return -result # Negate to maximize (minimize the Ackley function) + + +search_space = { + "x": np.linspace(-5, 5, 100), + "y": np.linspace(-5, 5, 100), +} + +optimizer = BayesianOptimizer( + search_space=search_space, + n_iter=50, + experiment=ackley, +) +best_params = optimizer.solve() +# [end:ackley_function] + + +# [start:external_simulation] +import subprocess + + +def run_simulation(params): + # Run an external simulation with the given parameters + result = subprocess.run( + ["./my_simulation", str(params["param1"]), str(params["param2"])], + capture_output=True, + text=True, + ) + # Parse the output and return the score + score = float(result.stdout.strip()) + return score + + +# [end:external_simulation] + + +# [start:sklearn_cv_experiment] +from sklearn.datasets import load_iris +from sklearn.ensemble import RandomForestClassifier +from sklearn.metrics import accuracy_score +from sklearn.model_selection import KFold + +from hyperactive.experiment.integrations import SklearnCvExperiment +from hyperactive.opt.gfo import HillClimbing + +X, y = load_iris(return_X_y=True) + +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(random_state=42), + X=X, + y=y, + cv=KFold(n_splits=5, shuffle=True, random_state=42), + scoring=accuracy_score, # Optional: defaults to estimator's score method +) + +search_space = { + "n_estimators": list(range(10, 200, 10)), + "max_depth": list(range(1, 20)), + "min_samples_split": list(range(2, 10)), +} + +optimizer = HillClimbing( + search_space=search_space, + n_iter=30, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:sklearn_cv_experiment] + + +# [start:sktime_forecasting] +from sktime.datasets import load_airline +from sktime.forecasting.naive import NaiveForecaster + +from hyperactive.experiment.integrations import SktimeForecastingExperiment +from hyperactive.opt.gfo import RandomSearch + +y = load_airline() + +experiment = SktimeForecastingExperiment( + estimator=NaiveForecaster(), + y=y, + fh=[1, 2, 3], # Forecast horizon +) + +search_space = { + "strategy": ["mean", "last", "drift"], +} + +optimizer = RandomSearch( + search_space=search_space, + n_iter=10, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:sktime_forecasting] + + +# [start:torch_experiment] +from hyperactive.experiment.integrations import TorchExperiment + +experiment = TorchExperiment( + model_class=MyLightningModel, + datamodule=my_datamodule, + trainer_kwargs={"max_epochs": 10}, +) +# [end:torch_experiment] + + +# [start:benchmark_experiments] +from hyperactive.experiment.bench import Ackley + +# Use benchmark as experiment +ackley = Ackley(dim=2) + +optimizer = BayesianOptimizer( + search_space=ackley.search_space, + n_iter=50, + experiment=ackley, +) +# [end:benchmark_experiments] + + +# [start:score_method] +from hyperactive.experiment.integrations import SklearnCvExperiment + +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(), + X=X, + y=y, + cv=5, +) + +# Evaluate specific parameters +params = {"n_estimators": 100, "max_depth": 10} +score, additional_info = experiment.score(params) + +print(f"Score: {score}") +print(f"Additional info: {additional_info}") +# [end:score_method] + + +# [start:robust_objective] +def robust_objective(params): + try: + score = compute_score(params) + return score + except Exception: + return -np.inf # Return bad score on failure + + +# [end:robust_objective] + + +# --- Runnable test code below --- +if __name__ == "__main__": + # Test simple objective + params = {"x": 0.0, "y": 0.0} + score = objective(params) + assert score == 0.0, f"Expected 0.0, got {score}" + + # Test Ackley function + params = {"x": 0.0, "y": 0.0} + ackley_score = ackley(params) + # Ackley minimum is at (0,0) with value 0 + assert abs(ackley_score) < 0.01, f"Expected ~0, got {ackley_score}" + + # Test sklearn CV experiment + from sklearn.datasets import load_iris + from sklearn.ensemble import RandomForestClassifier + + from hyperactive.experiment.integrations import SklearnCvExperiment + from hyperactive.opt.gfo import HillClimbing + + X, y = load_iris(return_X_y=True) + experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(random_state=42), + X=X, + y=y, + cv=3, + ) + + search_space = { + "n_estimators": [10, 50, 100], + "max_depth": [3, 5, 10], + } + + optimizer = HillClimbing( + search_space=search_space, + n_iter=5, + experiment=experiment, + random_state=42, + ) + best_params = optimizer.solve() + assert "n_estimators" in best_params + assert "max_depth" in best_params + + print("Experiments snippets passed!") diff --git a/docs/source/_snippets/user_guide/integrations.py b/docs/source/_snippets/user_guide/integrations.py new file mode 100644 index 00000000..4d83bcf5 --- /dev/null +++ b/docs/source/_snippets/user_guide/integrations.py @@ -0,0 +1,277 @@ +"""Integrations page code snippets for documentation. + +This snippet file contains examples from the integrations.rst page covering +sklearn, sktime, skpro, and PyTorch integrations. +""" + +# [start:optcv_basic] +from sklearn.datasets import load_iris +from sklearn.model_selection import train_test_split +from sklearn.svm import SVC + +from hyperactive.integrations.sklearn import OptCV +from hyperactive.opt.gfo import HillClimbing + +# Load data +X, y = load_iris(return_X_y=True) +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) + +# Define search space and optimizer +search_space = {"kernel": ["linear", "rbf"], "C": [0.1, 1, 10, 100]} +optimizer = HillClimbing(search_space=search_space, n_iter=20) + +# Create tuned estimator +tuned_svc = OptCV(SVC(), optimizer) + +# Fit like any sklearn estimator +tuned_svc.fit(X_train, y_train) + +# Predict +y_pred = tuned_svc.predict(X_test) + +# Access results +print(f"Best parameters: {tuned_svc.best_params_}") +print(f"Best estimator: {tuned_svc.best_estimator_}") +# [end:optcv_basic] + + +# [start:different_optimizers] +from hyperactive.opt import GridSearchSk as GridSearch +from hyperactive.opt.gfo import BayesianOptimizer, GeneticAlgorithm +from hyperactive.opt.optuna import TPEOptimizer + +# Grid Search (exhaustive) +optimizer = GridSearch(search_space) +tuned_model = OptCV(SVC(), optimizer) + +# Bayesian Optimization (smart sampling) +optimizer = BayesianOptimizer(search_space=search_space, n_iter=30) +tuned_model = OptCV(SVC(), optimizer) + +# Genetic Algorithm (population-based) +optimizer = GeneticAlgorithm(search_space=search_space, n_iter=50) +tuned_model = OptCV(SVC(), optimizer) + +# Optuna TPE +optimizer = TPEOptimizer(search_space=search_space, n_iter=30) +tuned_model = OptCV(SVC(), optimizer) +# [end:different_optimizers] + + +# [start:pipeline_integration] +from sklearn.pipeline import Pipeline +from sklearn.preprocessing import StandardScaler +from sklearn.svm import SVC + +# Create pipeline +pipe = Pipeline( + [ + ("scaler", StandardScaler()), + ("svc", SVC()), + ] +) + +# Search space with pipeline parameter naming +search_space = { + "svc__kernel": ["linear", "rbf"], + "svc__C": [0.1, 1, 10], +} + +optimizer = HillClimbing(search_space=search_space, n_iter=20) +tuned_pipe = OptCV(pipe, optimizer) +tuned_pipe.fit(X_train, y_train) +# [end:pipeline_integration] + + +# [start:forecasting_optcv] +from sktime.datasets import load_airline +from sktime.forecasting.naive import NaiveForecaster +from sktime.split import ExpandingWindowSplitter, temporal_train_test_split + +from hyperactive.integrations.sktime import ForecastingOptCV +from hyperactive.opt import GridSearchSk as GridSearch + +# Load time series data +y = load_airline() +y_train, y_test = temporal_train_test_split(y, test_size=12) + +# Define search space +param_grid = {"strategy": ["mean", "last", "drift"]} + +# Create tuned forecaster +tuned_forecaster = ForecastingOptCV( + NaiveForecaster(), + GridSearch(param_grid), + cv=ExpandingWindowSplitter( + initial_window=12, + step_length=3, + fh=range(1, 13), + ), +) + +# Fit and predict +tuned_forecaster.fit(y_train, fh=range(1, 13)) +y_pred = tuned_forecaster.predict() + +# Access results +print(f"Best parameters: {tuned_forecaster.best_params_}") +print(f"Best forecaster: {tuned_forecaster.best_forecaster_}") +# [end:forecasting_optcv] + + +# [start:tsc_optcv] +from sklearn.model_selection import KFold +from sktime.classification.dummy import DummyClassifier +from sktime.datasets import load_unit_test + +from hyperactive.integrations.sktime import TSCOptCV +from hyperactive.opt import GridSearchSk as GridSearch + +# Load time series classification data +X_train, y_train = load_unit_test( + return_X_y=True, + split="TRAIN", + return_type="pd-multiindex", +) +X_test, _ = load_unit_test( + return_X_y=True, + split="TEST", + return_type="pd-multiindex", +) + +# Define search space +param_grid = {"strategy": ["most_frequent", "stratified"]} + +# Create tuned classifier +tuned_classifier = TSCOptCV( + DummyClassifier(), + GridSearch(param_grid), + cv=KFold(n_splits=2, shuffle=False), +) + +# Fit and predict +tuned_classifier.fit(X_train, y_train) +y_pred = tuned_classifier.predict(X_test) + +# Access results +print(f"Best parameters: {tuned_classifier.best_params_}") +# [end:tsc_optcv] + + +# [start:skpro_experiment] +from hyperactive.experiment.integrations import SkproProbaRegExperiment +from hyperactive.opt.gfo import HillClimbing + +experiment = SkproProbaRegExperiment( + estimator=YourSkproEstimator(), + X=X, + y=y, + cv=5, +) + +optimizer = HillClimbing( + search_space=search_space, + n_iter=30, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:skpro_experiment] + + +# [start:pytorch_lightning] +import lightning as L + +from hyperactive.experiment.integrations import TorchExperiment +from hyperactive.opt.gfo import BayesianOptimizer + + +# Define your Lightning module +class MyModel(L.LightningModule): + def __init__(self, learning_rate=0.001, hidden_size=64): + super().__init__() + self.learning_rate = learning_rate + self.hidden_size = hidden_size + # ... model definition + + def training_step(self, batch, batch_idx): + # ... training logic + pass + + def configure_optimizers(self): + return torch.optim.Adam(self.parameters(), lr=self.learning_rate) + + +# Create experiment +experiment = TorchExperiment( + model_class=MyModel, + datamodule=my_datamodule, + trainer_kwargs={ + "max_epochs": 10, + "accelerator": "auto", + }, +) + +# Define search space +search_space = { + "learning_rate": [0.0001, 0.001, 0.01], + "hidden_size": [32, 64, 128, 256], +} + +# Optimize +optimizer = BayesianOptimizer( + search_space=search_space, + n_iter=20, + experiment=experiment, +) +best_params = optimizer.solve() +# [end:pytorch_lightning] + + +# --- Runnable test code below --- +if __name__ == "__main__": + from sklearn.datasets import load_iris + from sklearn.model_selection import train_test_split + from sklearn.pipeline import Pipeline + from sklearn.preprocessing import StandardScaler + from sklearn.svm import SVC + + from hyperactive.integrations.sklearn import OptCV + from hyperactive.opt.gfo import HillClimbing + + # Test OptCV basic usage + X, y = load_iris(return_X_y=True) + X_train, X_test, y_train, y_test = train_test_split( + X, y, test_size=0.2, random_state=42 + ) + + search_space = {"kernel": ["linear", "rbf"], "C": [0.1, 1, 10]} + optimizer = HillClimbing(search_space=search_space, n_iter=10) + tuned_svc = OptCV(SVC(), optimizer) + tuned_svc.fit(X_train, y_train) + y_pred = tuned_svc.predict(X_test) + + assert hasattr(tuned_svc, "best_params_") + assert hasattr(tuned_svc, "best_estimator_") + assert "kernel" in tuned_svc.best_params_ + assert "C" in tuned_svc.best_params_ + + # Test pipeline integration + pipe = Pipeline( + [ + ("scaler", StandardScaler()), + ("svc", SVC()), + ] + ) + + search_space = { + "svc__kernel": ["linear", "rbf"], + "svc__C": [0.1, 1], + } + + optimizer = HillClimbing(search_space=search_space, n_iter=5) + tuned_pipe = OptCV(pipe, optimizer) + tuned_pipe.fit(X_train, y_train) + + assert hasattr(tuned_pipe, "best_params_") + + print("Integrations snippets passed!") diff --git a/docs/source/_snippets/user_guide/introduction.py b/docs/source/_snippets/user_guide/introduction.py new file mode 100644 index 00000000..17b2376b --- /dev/null +++ b/docs/source/_snippets/user_guide/introduction.py @@ -0,0 +1,124 @@ +"""Introduction page code snippets for documentation. + +This snippet file contains examples from the introduction.rst page. +Some snippets are illustrative (showing patterns) while others are runnable. +""" + +import numpy as np + +# Define placeholders for illustrative code +# These allow the file to be imported without errors +X_train = np.array([[1, 2], [3, 4], [5, 6]]) +y_train = np.array([0, 1, 0]) +X = X_train +y = y_train + + +# [start:simple_objective] +def objective(params): + x = params["x"] + y = params["y"] + # Return a score to maximize + return -(x**2 + y**2) + + +# [end:simple_objective] + + +# [start:sklearn_experiment_intro] +from sklearn.ensemble import RandomForestClassifier + +from hyperactive.experiment.integrations import SklearnCvExperiment + +experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(), + X=X_train, + y=y_train, + cv=5, +) +# [end:sklearn_experiment_intro] + + +# [start:optimizer_imports] +# [end:optimizer_imports] +# [start:search_space_definition] +import numpy as np + +from hyperactive.opt.gfo import ( + HillClimbing, # Local search +) + +search_space = { + # Discrete integer values + "n_estimators": list(range(10, 200, 10)), + # Continuous values (discretized) + "learning_rate": np.logspace(-4, 0, 20), + # Categorical values + "kernel": ["linear", "rbf", "poly"], +} +# [end:search_space_definition] + + +# [start:workflow_experiment_options] +# Option A: Custom function +def my_objective(params): + # Your evaluation logic here + return score + + +# Option B: Built-in sklearn experiment +from hyperactive.experiment.integrations import SklearnCvExperiment + +experiment = SklearnCvExperiment( + estimator=YourEstimator(), + X=X, + y=y, + cv=5, +) +# [end:workflow_experiment_options] + + +# [start:workflow_search_space] +search_space = { + "param1": [1, 2, 3, 4, 5], + "param2": np.linspace(0.1, 1.0, 10), + "param3": ["option_a", "option_b"], +} +# [end:workflow_search_space] + + +# [start:workflow_optimizer] + +optimizer = HillClimbing( + search_space=search_space, + n_iter=100, # Number of iterations + experiment=experiment, + random_state=42, # For reproducibility +) +# [end:workflow_optimizer] + + +# [start:workflow_solve] +best_params = optimizer.solve() +print(f"Best parameters: {best_params}") +# [end:workflow_solve] + + +# [start:warm_starting] +warm_start = [ + {"n_estimators": 100, "max_depth": 10}, # Start from known good point +] + +optimizer = HillClimbing( + search_space=search_space, + n_iter=50, + experiment=experiment, + initialize={"warm_start": warm_start}, +) +# [end:warm_starting] + + +if __name__ == "__main__": + # The actual test code runs here + print("Introduction snippet file is importable!") + print("Full integration test runs in test_doc_snippets.py") diff --git a/docs/source/_snippets/user_guide/optimizers.py b/docs/source/_snippets/user_guide/optimizers.py new file mode 100644 index 00000000..181da4e5 --- /dev/null +++ b/docs/source/_snippets/user_guide/optimizers.py @@ -0,0 +1,324 @@ +"""Optimizers page code snippets for documentation. + +This snippet file contains examples from the optimizers.rst page covering +all optimizer categories and configurations. +""" + +import numpy as np + +# Define common test fixtures +search_space = { + "x": np.arange(-5, 5, 0.5), + "y": np.arange(-5, 5, 0.5), +} + + +def objective(params): + x = params["x"] + y = params["y"] + return -(x**2 + y**2) + + +# ============================================================================ +# Local Search Optimizers +# ============================================================================ + +# [start:hill_climbing] +from hyperactive.opt.gfo import HillClimbing + +optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:hill_climbing] + + +# [start:simulated_annealing] +from hyperactive.opt.gfo import SimulatedAnnealing + +optimizer = SimulatedAnnealing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:simulated_annealing] + + +# [start:repulsing_hill_climbing] +from hyperactive.opt.gfo import RepulsingHillClimbing + +optimizer = RepulsingHillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:repulsing_hill_climbing] + + +# [start:stochastic_hill_climbing] +from hyperactive.opt.gfo import StochasticHillClimbing + +optimizer = StochasticHillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, + p_accept=0.3, # Probability of accepting worse solutions +) +# [end:stochastic_hill_climbing] + + +# [start:downhill_simplex] +from hyperactive.opt.gfo import DownhillSimplexOptimizer + +optimizer = DownhillSimplexOptimizer( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:downhill_simplex] + + +# ============================================================================ +# Global Search Optimizers +# ============================================================================ + +# [start:random_search] +from hyperactive.opt.gfo import RandomSearch + +optimizer = RandomSearch( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:random_search] + + +# [start:grid_search] +from hyperactive.opt.gfo import GridSearch + +optimizer = GridSearch( + search_space=search_space, + experiment=objective, +) +# [end:grid_search] + + +# [start:random_restart_hill_climbing] +from hyperactive.opt.gfo import RandomRestartHillClimbing + +optimizer = RandomRestartHillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:random_restart_hill_climbing] + + +# [start:powells_pattern] +# [end:powells_pattern] + + +# ============================================================================ +# Population Methods +# ============================================================================ + +# [start:particle_swarm] +from hyperactive.opt.gfo import ParticleSwarmOptimizer + +optimizer = ParticleSwarmOptimizer( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:particle_swarm] + + +# [start:genetic_algorithm] +from hyperactive.opt.gfo import GeneticAlgorithm + +optimizer = GeneticAlgorithm( + search_space=search_space, + n_iter=100, + experiment=objective, +) +# [end:genetic_algorithm] + + +# [start:evolution_strategy] +# [end:evolution_strategy] + + +# [start:differential_evolution] +# [end:differential_evolution] + + +# [start:parallel_tempering] +# [end:parallel_tempering] + + +# [start:spiral_optimization] +# [end:spiral_optimization] + + +# ============================================================================ +# Sequential Model-Based (Bayesian) +# ============================================================================ + +# [start:bayesian_optimizer] +from hyperactive.opt.gfo import BayesianOptimizer + +optimizer = BayesianOptimizer( + search_space=search_space, + n_iter=50, + experiment=objective, +) +# [end:bayesian_optimizer] + + +# [start:tpe] +# [end:tpe] + + +# [start:forest_optimizer] +# [end:forest_optimizer] + + +# [start:lipschitz_direct] +# [end:lipschitz_direct] + + +# ============================================================================ +# Optuna Backend +# ============================================================================ + +# [start:optuna_imports] +from hyperactive.opt.optuna import ( + TPEOptimizer, # Tree-Parzen Estimators +) + +# [end:optuna_imports] + + +# [start:optuna_tpe] + +optimizer = TPEOptimizer( + search_space=search_space, + n_iter=50, + experiment=objective, +) +# [end:optuna_tpe] + + +# ============================================================================ +# Configuration Examples +# ============================================================================ + +# [start:common_parameters] +optimizer = SomeOptimizer( + search_space=search_space, # Required: parameter ranges + n_iter=100, # Required: number of iterations + experiment=objective, # Required: objective function + random_state=42, # Optional: for reproducibility + initialize={ # Optional: initialization settings + "warm_start": [...], # Starting points + "grid": 4, # Grid initialization points + "random": 2, # Random initialization points + "vertices": 4, # Vertex initialization points + }, +) +# [end:common_parameters] + + +# [start:warm_start_example] +# Start from known good points +optimizer = HillClimbing( + search_space=search_space, + n_iter=50, + experiment=objective, + initialize={ + "warm_start": [ + {"param1": 10, "param2": 0.5}, + {"param1": 20, "param2": 0.3}, + ] + }, +) +# [end:warm_start_example] + + +# [start:initialization_strategies] +# Mix of initialization strategies +optimizer = ParticleSwarmOptimizer( + search_space=search_space, + n_iter=100, + experiment=objective, + initialize={ + "grid": 4, # 4 points on a grid + "random": 6, # 6 random points + "vertices": 4, # 4 corner points + }, +) +# [end:initialization_strategies] + + +# [start:simulated_annealing_config] +from hyperactive.opt.gfo import SimulatedAnnealing + +optimizer = SimulatedAnnealing( + search_space=search_space, + n_iter=100, + experiment=objective, + # Algorithm-specific parameters + # (check API reference for available options) +) +# [end:simulated_annealing_config] + + +# --- Runnable test code below --- +if __name__ == "__main__": + from hyperactive.opt.gfo import ( + BayesianOptimizer, + GeneticAlgorithm, + HillClimbing, + ParticleSwarmOptimizer, + RandomSearch, + SimulatedAnnealing, + ) + + search_space = { + "x": np.arange(-5, 5, 0.5), + "y": np.arange(-5, 5, 0.5), + } + + def objective(params): + x = params["x"] + y = params["y"] + return -(x**2 + y**2) + + # Test a few optimizers + optimizers_to_test = [ + ("HillClimbing", HillClimbing), + ("SimulatedAnnealing", SimulatedAnnealing), + ("RandomSearch", RandomSearch), + ("BayesianOptimizer", BayesianOptimizer), + ] + + for name, OptimizerClass in optimizers_to_test: + if name == "BayesianOptimizer": + optimizer = OptimizerClass( + search_space=search_space, + n_iter=10, + experiment=objective, + ) + else: + optimizer = OptimizerClass( + search_space=search_space, + n_iter=20, + experiment=objective, + ) + best_params = optimizer.solve() + assert "x" in best_params + assert "y" in best_params + print(f"{name} passed!") + + print("All optimizer snippets passed!") diff --git a/docs/source/_static/css/custom.css b/docs/source/_static/css/custom.css new file mode 100644 index 00000000..89cf8ca3 --- /dev/null +++ b/docs/source/_static/css/custom.css @@ -0,0 +1,1300 @@ +/* Custom CSS for Hyperactive documentation */ +/* Purple/Violet theme matching the Hyperactive logo */ + +/* ============================================ + Google Font Import for Hero Title + ============================================ */ +@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;400;600;700&display=swap'); + +/* ============================================ + PyData Theme Color Overrides (purple theme) + ============================================ */ +html[data-theme="light"] { + --pst-color-primary: #5D5D7A; + --pst-color-primary-bg: #f0f0f8; + --pst-color-secondary: #7070A0; + --pst-color-accent: #8080B0; + --pst-color-info: #7070A0; + --pst-color-link: #5D5D7A; + --pst-color-link-hover: #4A4A65; + --pst-color-target: rgba(125, 125, 170, 0.2); +} + +html[data-theme="dark"] { + --pst-color-primary: #9090C0; + --pst-color-primary-bg: #2a2a3a; + --pst-color-secondary: #A0A0D0; + --pst-color-accent: #B0B0E0; + --pst-color-info: #9090C0; + --pst-color-link: #A0A0D0; + --pst-color-link-hover: #B0B0E0; + --pst-color-target: rgba(160, 160, 208, 0.2); + --separator-color: #3d3d4d; +} + +/* ============================================ + CSS Variables for consistent theming + ============================================ */ +:root { + /* Purple/violet colors from the Hyperactive logo */ + --hyperactive-primary: #5D5D7A; + --hyperactive-secondary: #7070A0; + --hyperactive-accent: #8080B0; + --hyperactive-dark: #4A4A65; + --hyperactive-light: #f8f9fa; + --hyperactive-gradient: linear-gradient(135deg, #3D3D55 0%, #5858A0 100%); + --hyperactive-gradient-dark: linear-gradient(135deg, #2D2D45 0%, #484890 100%); + --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + --card-shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); + /* Neutral separator color */ + --separator-color: #dee2e6; + + /* Backend brand colors - from official logos */ + --gfo-light: #80b4ff; + --gfo-dark: #000054; + --gfo-grey: #555555; + --optuna-dark: #123692; + --optuna-light: #3b82c4; + --sklearn-orange: #F7931E; + --sklearn-blue: #29ABE2; + + /* Integration brand colors */ + --sktime-blue: #0075b7; + --sktime-teal: #00a890; + --skpro-blue: #0076b7; + --skpro-teal: #01ab90; + --pytorch-orange: #ee4c2c; + --pytorch-yellow: #eaa700; +} + +/* ============================================ + Top Navbar Styling + ============================================ */ +.bd-header.navbar { + padding-top: 0 !important; + padding-bottom: 0 !important; + min-height: auto !important; +} + +.bd-header .navbar-header-items { + flex-wrap: nowrap !important; +} + +.bd-header .navbar-header-items__center { + flex-wrap: nowrap !important; +} + +.bd-header .navbar-header-items__start { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.navbar-brand { + padding: 0.25rem 0 !important; + margin-right: 0.75rem !important; + flex-shrink: 0 !important; +} + +.navbar-brand .logo__image { + height: 36px !important; + width: auto !important; + max-height: 36px !important; + display: inline-block !important; + visibility: visible !important; + opacity: 1 !important; +} + +.navbar-brand p, +.navbar-brand .logo__title { + display: none !important; +} + +.bd-navbar .navbar-nav { + gap: 0.1rem; + flex-wrap: nowrap !important; +} + +.bd-navbar .nav-link { + padding: 0.4rem 0.5rem !important; + white-space: nowrap; + font-size: 0.85rem; +} + +.bd-navbar .dropdown-toggle { + padding: 0.4rem 0.5rem !important; + font-size: 0.85rem; +} + +/* ============================================ + Right Sidebar - On This Page spacing + ============================================ */ +.bd-toc-nav.page-toc { + margin-top: 1.25rem; +} + +.pst-page-navigation-heading { + margin-bottom: 0.5rem; +} + +/* ============================================ + Hero Section + ============================================ */ +.hero-section { + background: var(--hyperactive-gradient); + padding: 3rem 2rem; + margin: -1rem -1rem 2rem -1rem; + border-radius: 0 0 20px 20px; + text-align: center; + position: relative; + overflow: hidden; +} + +.hero-section::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: + radial-gradient(circle at 20% 80%, rgba(255, 255, 255, 0.1) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.1) 0%, transparent 50%); + pointer-events: none; +} + +.hero-content { + position: relative; + z-index: 1; +} + +.hero-title { + font-family: 'Raleway', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + font-size: 3.5rem; + font-weight: 300; + color: #ffffff; + margin: 0 0 3.5rem 0; + letter-spacing: 0.25em; + text-transform: uppercase; + text-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); +} + +.hero-tagline { + font-size: 1.25rem; + font-weight: 400; + color: rgba(255, 255, 255, 0.9); + margin: 0 0 0.5rem 0; + letter-spacing: 0.05em; + font-style: italic; +} + +/* ============================================ + Back to Top Link (in sidebar) + ============================================ */ +.back-to-top-sidebar { + display: none; + margin-top: 1.5rem; + padding-top: 1rem; + border-top: 1px solid var(--pst-color-border); +} + +.back-to-top-sidebar.visible { + display: block; +} + +.back-to-top-sidebar a { + display: inline-flex; + align-items: center; + gap: 0.5rem; + color: var(--hyperactive-primary); + text-decoration: none; + font-size: 0.85rem; + font-weight: 500; + transition: color 0.2s ease; +} + +.back-to-top-sidebar a:hover { + color: var(--hyperactive-dark); +} + +html[data-theme="dark"] .back-to-top-sidebar a { + color: var(--hyperactive-secondary); +} + +html[data-theme="dark"] .back-to-top-sidebar a:hover { + color: var(--hyperactive-accent); +} + +.hero-subtitle { + font-size: 1.1rem; + color: rgba(255, 255, 255, 0.9); + margin: 0; +} + +/* ============================================ + Stats Strip (below hero) + ============================================ */ +.stats-strip { + display: flex; + justify-content: center; + align-items: stretch; + gap: 0; + margin: 0 0 2rem 0; + padding: 0; + border-radius: 12px; + overflow: hidden; + box-shadow: var(--card-shadow); + border: 1px solid var(--pst-color-border); + background: var(--pst-color-surface); +} + +.stat-item { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 1.25rem 1rem; + text-align: center; + position: relative; + transition: background 0.2s ease; +} + +.stat-item:not(:last-child)::after { + content: ''; + position: absolute; + right: 0; + top: 20%; + height: 60%; + width: 1px; + background: var(--pst-color-border); +} + +.stat-item:hover { + background: var(--pst-color-background); +} + +.stat-value { + font-size: 1.75rem; + font-weight: 700; + color: var(--hyperactive-primary); + line-height: 1.2; + margin-bottom: 0.25rem; +} + +html[data-theme="dark"] .stat-value { + color: var(--hyperactive-secondary); +} + +.stat-label { + font-size: 0.8rem; + font-weight: 500; + color: var(--pst-color-text-muted); + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.stat-icon { + font-size: 1.25rem; + margin-bottom: 0.5rem; + opacity: 0.7; +} + +/* Responsive: stack on mobile */ +@media (max-width: 640px) { + .stats-strip { + flex-wrap: wrap; + } + + .stat-item { + flex: 1 1 50%; + padding: 1rem 0.75rem; + } + + .stat-item:not(:last-child)::after { + display: none; + } + + .stat-item:nth-child(1), + .stat-item:nth-child(2) { + border-bottom: 1px solid var(--pst-color-border); + } + + .stat-item:nth-child(odd) { + border-right: 1px solid var(--pst-color-border); + } + + .stat-value { + font-size: 1.5rem; + } +} + +/* ============================================ + Badge Banner (replaces Maturity Banner) + ============================================ */ +.badge-banner { + text-align: center; + padding: 1rem 1rem 1.5rem; + margin: 1rem 0; +} + +.badge-items { + display: flex; + justify-content: center; + align-items: center; + gap: 0.75rem; + flex-wrap: wrap; +} + +.badge-items a { + display: inline-block; + line-height: 0; +} + +.badge-items img { + height: 28px; + vertical-align: middle; + border-radius: 0 !important; + image-rendering: crisp-edges; +} + +/* Legacy Maturity Banner (kept for backwards compatibility) */ +.maturity-banner { + background: linear-gradient(90deg, #f8f9fa 0%, #e9ecef 50%, #f8f9fa 100%); + border-radius: 12px; + padding: 1rem 1.5rem; + margin: 1.5rem 0; + border: 1px solid #dee2e6; +} + +html[data-theme="dark"] .maturity-banner { + background: linear-gradient(90deg, #2d2d3a 0%, #252530 50%, #2d2d3a 100%); + border-color: #3d3d4d; +} + +.maturity-items { + display: flex; + justify-content: center; + gap: 2rem; + flex-wrap: wrap; +} + +.maturity-item { + display: flex; + align-items: center; + gap: 0.5rem; + color: #495057; +} + +html[data-theme="dark"] .maturity-item { + color: #adb5bd; +} + +.maturity-icon { + font-size: 1.25rem; +} + +.maturity-text { + font-size: 0.95rem; +} + +/* ============================================ + Feature Cards + ============================================ */ +.feature-card { + border: 1px solid #e9ecef !important; + border-left: 3px solid var(--hyperactive-primary) !important; + box-shadow: var(--card-shadow); + transition: all 0.2s ease; + border-radius: 8px !important; + overflow: hidden; +} + +html[data-theme="dark"] .feature-card { + border-color: #3d3d4d !important; + border-left-color: var(--hyperactive-secondary) !important; +} + +.feature-card:hover { + box-shadow: var(--card-shadow-hover); + border-left-color: var(--hyperactive-secondary) !important; +} + +html[data-theme="dark"] .feature-card:hover { + border-left-color: var(--hyperactive-accent) !important; +} + +.feature-card .sd-card-body { + padding: 1.25rem; +} + +.feature-card .sd-card-footer { + font-size: 0.85rem; + color: var(--hyperactive-dark); + padding: 0; + background: #f0f1f3; + border-top: 1px solid #e0e2e6; +} + +.feature-card .sd-card-footer p { + margin: 0; +} + +.feature-card .sd-card-footer a { + display: flex; + align-items: center; + padding: 0.75rem 1.25rem; + color: var(--hyperactive-dark); + text-decoration: none; + transition: all 0.2s ease; + position: relative; +} + +.feature-card .sd-card-footer a::after { + content: "→"; + margin-left: auto; + padding-left: 1rem; + opacity: 0; + transform: translateX(-8px); + transition: all 0.2s ease; +} + +.feature-card .sd-card-footer a:hover { + background: #e4e6ea; +} + +.feature-card .sd-card-footer a:hover::after { + opacity: 0.6; + transform: translateX(0); +} + +html[data-theme="dark"] .feature-card .sd-card-footer { + background: #2a2a3a; + border-top-color: #3d3d4d; + color: #c8c8d8; +} + +html[data-theme="dark"] .feature-card .sd-card-footer a { + color: #c8c8d8; +} + +html[data-theme="dark"] .feature-card .sd-card-footer a:hover { + background: #3a3a4a; +} + +/* ============================================ + Algorithm Cards + ============================================ */ +.algo-card { + border-left: 4px solid var(--hyperactive-primary) !important; + background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); + transition: all 0.2s ease; +} + +html[data-theme="dark"] .algo-card { + background: linear-gradient(135deg, #2d2d3a 0%, #252530 100%); +} + +.algo-card:hover { + border-left-color: var(--hyperactive-secondary) !important; + transform: translateX(4px); +} + +.algo-card ul { + margin: 0; + padding-left: 1.2rem; +} + +.algo-card li { + margin-bottom: 0.3rem; + font-size: 0.9rem; +} + +.optuna-card { + border-left-color: var(--hyperactive-accent) !important; +} + +.optuna-card:hover { + border-left-color: var(--hyperactive-primary) !important; +} + +/* ============================================ + Backend Cards (GFO, Optuna, sklearn) + ============================================ */ +.backend-card { + border-radius: 8px !important; + overflow: hidden; + box-shadow: var(--card-shadow); + border: none !important; + position: relative; + background: var(--pst-color-surface); +} + +/* Side accent bar using pseudo-element for multi-color support */ +.backend-card::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 6px; + border-radius: 8px 0 0 8px; +} + +.backend-card .sd-card-header { + padding: 1.25rem 1.5rem 0.75rem; + border-bottom: none; + background: transparent; +} + +.backend-card .sd-card-header .sd-card-text { + font-size: 1.25rem; + font-weight: 600; + margin: 0; +} + +.backend-card .sd-card-header a { + text-decoration: none; + transition: opacity 0.2s ease; +} + +.backend-card .sd-card-header a:hover { + text-decoration: underline; +} + +.backend-card .sd-card-body { + padding: 0.5rem 1.5rem 1rem; + font-size: 0.95rem; + line-height: 1.6; +} + +.backend-card .sd-card-body ul { + margin: 0.75rem 0 0 0; + padding-left: 1.25rem; +} + +.backend-card .sd-card-body li { + margin-bottom: 0.4rem; +} + +.backend-card .sd-card-footer { + padding: 0; + border-top: 1px solid var(--pst-color-border); + background: transparent; + transition: background 0.2s ease; +} + +.backend-card .sd-card-footer a { + display: flex; + align-items: center; + padding: 0.875rem 1.5rem; + text-decoration: none; + font-weight: 500; + transition: all 0.2s ease; + position: relative; +} + +.backend-card .sd-card-footer a::after { + content: "→"; + margin-left: auto; + padding-left: 1rem; + opacity: 0; + transform: translateX(-8px); + transition: all 0.2s ease; +} + +.backend-card .sd-card-footer:hover { + background: var(--pst-color-background); +} + +.backend-card .sd-card-footer a:hover::after { + opacity: 0.6; + transform: translateX(0); +} + +/* GFO: Tri-color (dark navy | light blue | grey) */ +.backend-card-gfo::before { + background: linear-gradient(to bottom, + var(--gfo-dark) 0%, var(--gfo-dark) 33%, + var(--gfo-light) 33%, var(--gfo-light) 66%, + var(--gfo-grey) 66%, var(--gfo-grey) 100%); +} + +/* Optuna: Vertical gradient (dark blue → light blue) */ +.backend-card-optuna::before { + background: linear-gradient(to bottom, var(--optuna-dark) 0%, var(--optuna-light) 100%); +} + +/* sklearn: 50/50 split (orange | cyan) */ +.backend-card-sklearn::before { + background: linear-gradient(to bottom, var(--sklearn-orange) 50%, var(--sklearn-blue) 50%); +} + +/* ============================================ + Integration Cards (horizontal, two-part) + ============================================ */ +.integration-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 1.25rem; + margin: 1.5rem 0; +} + +@media (max-width: 768px) { + .integration-grid { + grid-template-columns: 1fr; + } +} + +.integration-card { + background: var(--pst-color-surface); + border-radius: 8px; + display: flex; + box-shadow: var(--card-shadow); + position: relative; + overflow: hidden; +} + +.integration-card::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 5px; +} + +.integration-left { + padding: 1.25rem 1.5rem; + display: flex; + align-items: center; + min-width: 140px; +} + +.integration-left a { + font-size: 1.1rem; + font-weight: 600; + text-decoration: none; + transition: opacity 0.2s ease; +} + +.integration-left a:hover { + text-decoration: underline; +} + +.integration-right { + flex: 1; + display: flex; + align-items: center; + border-left: 1px solid var(--pst-color-border); + position: relative; + transition: background 0.2s ease; +} + +.integration-right a { + display: flex; + align-items: center; + padding: 1.25rem 1.5rem; + width: 100%; + height: 100%; + text-decoration: none; + color: inherit; + transition: all 0.2s ease; +} + +.integration-right a::after { + content: "→"; + margin-left: auto; + padding-left: 1rem; + opacity: 0; + transform: translateX(-8px); + transition: all 0.2s ease; +} + +.integration-right:hover { + background: var(--pst-color-background); +} + +.integration-right:hover a::after { + opacity: 0.6; + transform: translateX(0); +} + +.integration-desc { + font-size: 0.95rem; + line-height: 1.4; +} + +/* Integration card colors */ +.integration-card.sklearn::before { + background: linear-gradient(to bottom, var(--sklearn-orange) 50%, var(--sklearn-blue) 50%); +} + +.integration-card.sktime::before { + background: linear-gradient(to bottom, var(--sktime-blue) 0%, var(--sktime-teal) 100%); +} + +.integration-card.skpro::before { + background: linear-gradient(to bottom, var(--skpro-blue) 0%, var(--skpro-teal) 100%); +} + +.integration-card.pytorch::before { + background: linear-gradient(to bottom, var(--pytorch-orange) 50%, var(--pytorch-yellow) 50%); +} + +/* ============================================ + Navigation Cards + ============================================ */ +/* ============================================ + Contents Navigation Cards (horizontal style) + ============================================ */ +.contents-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1rem; + margin: 1.5rem 0; +} + +@media (max-width: 992px) { + .contents-grid { + grid-template-columns: repeat(2, 1fr); + } +} + +@media (max-width: 576px) { + .contents-grid { + grid-template-columns: 1fr; + } +} + +.contents-card { + background: var(--pst-color-surface); + border-radius: 8px; + display: flex; + align-items: stretch; + box-shadow: var(--card-shadow); + position: relative; + overflow: hidden; + text-decoration: none; + color: inherit; + transition: box-shadow 0.2s ease; +} + +.contents-card::before { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 4px; + background: linear-gradient(to bottom, var(--hyperactive-primary) 0%, var(--hyperactive-secondary) 100%); +} + +.contents-card:hover { + box-shadow: var(--card-shadow-hover); +} + +.contents-card-inner { + display: flex; + align-items: center; + width: 100%; + padding: 1rem 1.25rem 1rem 1.5rem; + transition: all 0.2s ease; +} + +.contents-card:hover .contents-card-inner { + background: var(--pst-color-background); +} + +.contents-card-text { + flex: 1; +} + +.contents-card-title { + font-size: 1rem; + font-weight: 600; + margin: 0 0 0.25rem 0; +} + +.contents-card-desc { + font-size: 0.85rem; + opacity: 0.7; + margin: 0; + line-height: 1.3; +} + +.contents-card-arrow { + opacity: 0; + transform: translateX(-8px); + transition: all 0.2s ease; + margin-left: 1rem; + font-size: 1rem; +} + +.contents-card:hover .contents-card-arrow { + opacity: 0.6; + transform: translateX(0); +} + +/* ============================================ + Visualization Section + ============================================ */ +.visualization-section { + text-align: center; + padding: 2rem 0; +} + +.visualization-section h2 { + color: var(--hyperactive-primary); + margin-bottom: 0.5rem; +} + +.visualization-section p { + color: #6c757d; + margin-bottom: 1.5rem; +} + +.optimization-gif { + max-width: 100%; + max-height: 400px; + border-radius: 12px; + box-shadow: var(--card-shadow-hover); + border: 3px solid var(--hyperactive-primary); +} + +/* ============================================ + Sponsor Section + ============================================ */ +.sponsor-section { + text-align: center; + padding: 1.5rem 0; +} + +.sponsor-section img { + transition: transform 0.2s ease; +} + +.sponsor-section img:hover { + transform: scale(1.05); +} + +/* ============================================ + Code Blocks Enhancement + ============================================ */ +.highlight { + border-radius: 8px; + overflow: hidden; +} + +.highlight pre { + border-radius: 8px; + padding: 1rem; +} + +/* ============================================ + Tab Set Styling + ============================================ */ +.sd-tab-set { + border-radius: 12px; + overflow: hidden; + box-shadow: var(--card-shadow); +} + +.sd-tab-label { + font-weight: 500; + transition: all 0.2s ease; +} + +.sd-tab-label:hover { + background-color: rgba(93, 93, 122, 0.1); +} + +input[name^="sd-tab-set"]:checked + label { + border-bottom-color: var(--hyperactive-primary) !important; + color: var(--hyperactive-primary); +} + +/* ============================================ + Section Separators - Full Width Horizontal Lines + ============================================ */ +hr { + border: none; + height: 1px; + background-color: var(--separator-color); + margin: 2.5rem 0; + width: 100%; +} + +/* ============================================ + Section Headers - Clean without decorative underlines + ============================================ */ +h2 { + position: relative; + padding-bottom: 0; +} + +/* Remove the short underline pseudo-element */ +h2::after { + display: none; +} + +/* ============================================ + Button Enhancements + ============================================ */ +.sd-btn-primary { + background: var(--hyperactive-gradient) !important; + border: none !important; + transition: all 0.3s ease !important; +} + +.sd-btn-primary:hover { + background: var(--hyperactive-gradient-dark) !important; + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(93, 93, 122, 0.4); +} + +/* ============================================ + Responsive Adjustments + ============================================ */ +@media (max-width: 768px) { + .hero-section { + padding: 2rem 1rem; + margin: -1rem -0.5rem 1.5rem -0.5rem; + } + + .hero-title { + font-size: 2.5rem; + } + + .hero-tagline { + font-size: 1.4rem; + } + + .hero-subtitle { + font-size: 1rem; + } + + .maturity-items { + gap: 1rem; + } + + .maturity-item { + font-size: 0.85rem; + } + + .feature-icon { + font-size: 2rem; + } +} + +@media (max-width: 480px) { + .hero-title { + font-size: 2rem; + } + + .maturity-items { + flex-direction: column; + gap: 0.75rem; + } +} + +/* ============================================ + Print Styles + ============================================ */ +@media print { + .hero-section { + background: #f8f9fa !important; + color: #000 !important; + } + + .hero-title, + .hero-tagline, + .hero-subtitle { + color: #000 !important; + } +} + +/* ============================================ + Vertical Tabs Component + ============================================ */ +.vertical-tabs { + display: flex; + gap: 1.5rem; + margin: 1.5rem 0; +} + +.vertical-tabs-nav { + display: flex; + flex-direction: column; + width: 190px; + flex-shrink: 0; + background: var(--pst-color-background); + border-radius: 10px; + padding: 0.5rem; + box-shadow: var(--card-shadow); + border: 1px solid var(--pst-color-border); + align-self: flex-start; +} + +.vertical-tab-btn { + display: flex; + align-items: center; + padding: 0.75rem 1rem; + background: transparent; + border: none; + border-left: 3px solid transparent; + border-radius: 6px; + text-align: left; + font-size: 0.875rem; + font-weight: 500; + color: var(--pst-color-text-muted); + cursor: pointer; + transition: all 0.2s ease; + position: relative; + margin: 2px 0; +} + +.vertical-tab-btn:hover { + background: var(--pst-color-surface); + color: var(--pst-color-text-base); +} + +.vertical-tab-btn.active { + border-left-color: var(--hyperactive-primary); + background: var(--pst-color-surface); + color: var(--hyperactive-primary); +} + +html[data-theme="dark"] .vertical-tab-btn.active { + border-left-color: var(--hyperactive-secondary); + color: var(--hyperactive-secondary); +} + +.vertical-tab-btn .tab-indicator { + width: 6px; + height: 6px; + border-radius: 50%; + background: var(--hyperactive-primary); + margin-right: 0.75rem; + opacity: 0; + transform: scale(0); + transition: all 0.2s ease; +} + +.vertical-tab-btn.active .tab-indicator { + opacity: 1; + transform: scale(1); +} + +html[data-theme="dark"] .vertical-tab-btn .tab-indicator { + background: var(--hyperactive-secondary); +} + +.vertical-tabs-content { + flex: 1; + min-height: 200px; + overflow: hidden; +} + +.vertical-tab-panel { + display: none; +} + +.vertical-tab-panel.active { + display: block; + animation: revealVertical 0.35s ease-out; +} + +@keyframes revealVertical { + from { + opacity: 0; + clip-path: inset(0 0 100% 0); + } + to { + opacity: 1; + clip-path: inset(0 0 0 0); + } +} + +/* Code block styling within vertical tabs */ +.vertical-tab-panel .highlight { + margin: 0; + border-radius: 4px; + box-shadow: var(--card-shadow); + height: 380px; + overflow: hidden; +} + +.vertical-tab-panel .highlight pre { + margin: 0; + padding: 1rem 1.25rem; + font-size: 0.85rem; + line-height: 1.5; + height: 100%; + overflow-y: auto; + border-radius: 4px; +} + +/* Responsive: Convert to horizontal on smaller screens */ +@media (max-width: 768px) { + .vertical-tabs { + flex-direction: column; + gap: 1rem; + } + + .vertical-tabs-nav { + flex-direction: row; + min-width: 100%; + overflow-x: auto; + padding: 0.25rem; + -webkit-overflow-scrolling: touch; + scrollbar-width: none; + } + + .vertical-tabs-nav::-webkit-scrollbar { + display: none; + } + + .vertical-tab-btn { + flex-shrink: 0; + border-left: none; + border-bottom: 3px solid transparent; + padding: 0.625rem 1rem; + white-space: nowrap; + margin: 0 2px; + } + + .vertical-tab-btn.active { + border-left-color: transparent; + border-bottom-color: var(--hyperactive-primary); + } + + html[data-theme="dark"] .vertical-tab-btn.active { + border-bottom-color: var(--hyperactive-secondary); + } + + .vertical-tab-btn .tab-indicator { + display: none; + } +} + +/* Section title styling for Quick Install/Example */ +.vertical-tabs-section-title { + font-size: 0.75rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; + color: var(--pst-color-text-muted); + padding: 0.75rem 1.25rem 0.5rem; + margin: 0; +} + +/* Tab description subtitle */ +.vertical-tab-btn .tab-subtitle { + display: block; + font-size: 0.75rem; + font-weight: 400; + color: var(--pst-color-text-muted); + margin-top: 0.125rem; +} + +.vertical-tab-btn.active .tab-subtitle { + color: var(--hyperactive-secondary); +} + +html[data-theme="dark"] .vertical-tab-btn.active .tab-subtitle { + color: var(--hyperactive-accent); +} + +/* ============================================ + Segmented Control Tabs (for Quick Install) + ============================================ */ +.segmented-tabs { + margin: 1.5rem 0; +} + +.segmented-tabs-nav { + display: inline-flex; + background: var(--pst-color-background); + border-radius: 10px; + padding: 4px; + gap: 2px; + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.08); + border: 1px solid var(--pst-color-border); +} + +.segmented-tab-btn { + padding: 0.5rem 1.25rem; + border: none; + background: transparent; + border-radius: 8px; + font-size: 0.875rem; + font-weight: 500; + color: var(--pst-color-text-muted); + cursor: pointer; + transition: all 0.2s ease; + white-space: nowrap; +} + +.segmented-tab-btn:hover { + color: var(--pst-color-text-base); +} + +.segmented-tab-btn.active { + background: var(--pst-color-surface); + color: var(--hyperactive-primary); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +html[data-theme="dark"] .segmented-tab-btn.active { + color: var(--hyperactive-secondary); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); +} + +.segmented-tabs-content { + margin-top: 1rem; +} + +.segmented-tab-panel { + display: none; + animation: segmentedFadeIn 0.2s ease; +} + +.segmented-tab-panel.active { + display: block; +} + +@keyframes segmentedFadeIn { + from { + opacity: 0; + transform: translateY(-4px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +.segmented-tab-panel .highlight { + border-radius: 8px; + margin: 0; +} + +.segmented-tab-panel .highlight pre { + margin: 0; + padding: 0.875rem 1.25rem; + font-size: 0.9rem; +} + +/* Responsive: stack on very small screens */ +@media (max-width: 540px) { + .segmented-tabs-nav { + flex-wrap: wrap; + width: 100%; + } + + .segmented-tab-btn { + flex: 1 1 auto; + text-align: center; + padding: 0.5rem 0.75rem; + } +} diff --git a/docs/source/_static/fields.css b/docs/source/_static/fields.css new file mode 100644 index 00000000..48ec4964 --- /dev/null +++ b/docs/source/_static/fields.css @@ -0,0 +1,21 @@ +/* CSS for parameter fields and other structured documentation elements */ + +/* Styling for parameter lists */ +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 0.5em; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-bottom: 0.5em; + margin-left: 0em; +} diff --git a/docs/source/_static/images/badges/generate_badges.py b/docs/source/_static/images/badges/generate_badges.py new file mode 100644 index 00000000..96fb09c3 --- /dev/null +++ b/docs/source/_static/images/badges/generate_badges.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python3 +""" +Badge Generator for Hyperactive Documentation + +Generates local SVG badges based on project information from pyproject.toml. +This eliminates dependency on external badge services like shields.io. + +Usage: + python generate_badges.py + +Output: + - version.svg + - python.svg + - license.svg + - sponsor.svg +""" + +import re +from pathlib import Path + +try: + import tomllib +except ImportError: + import tomli as tomllib + + +# Hyperactive color palette +COLORS = { + "primary": "#5D5D7A", + "secondary": "#7070A0", + "dark": "#4A4A65", + "light": "#f8f9fa", + "sponsor": "#0eac92", + "label_bg": "#555", +} + + +def create_badge_svg( + label: str, value: str, color: str, label_width: int = None, value_width: int = None +) -> str: + """ + Create an SVG badge in shields.io flat-square style. + + Args: + label: Left side text (e.g., "version") + value: Right side text (e.g., "5.0.2") + color: Hex color for the value background + label_width: Override calculated label width + value_width: Override calculated value width + + Returns + ------- + SVG string + """ + # Approximate width calculation (7px per character + padding) + char_width = 6.5 + padding = 10 + + lw = label_width or int(len(label) * char_width + padding * 2) + vw = value_width or int(len(value) * char_width + padding * 2) + total_width = lw + vw + height = 20 + + svg = f""" + {label}: {value} + + + + + + {label} + + {value} +""" + + return svg + + +def create_simple_badge_svg( + text: str, color: str, width: int = None, font_size: int = 11 +) -> str: + """ + Create a simple single-section SVG badge. + + Args: + text: Badge text + color: Background color + width: Override calculated width + font_size: Font size in pixels + + Returns + ------- + SVG string + """ + char_width = 7 + padding = 16 + w = width or int(len(text) * char_width + padding * 2) + height = 20 + text_y = 14 if font_size >= 11 else 13.5 + + svg = f""" + {text} + + {text} +""" + + return svg + + +def extract_python_versions(classifiers: list) -> str: + """Extract Python version range from classifiers.""" + versions = [] + pattern = r"Programming Language :: Python :: (\d+\.\d+)" + + for classifier in classifiers: + match = re.match(pattern, classifier) + if match: + versions.append(match.group(1)) + + if not versions: + return "3.10+" + + versions.sort(key=lambda v: tuple(map(int, v.split(".")))) + + if len(versions) == 1: + return versions[0] + + return f"{versions[0]} - {versions[-1]}" + + +def main(): + # Find pyproject.toml + script_dir = Path(__file__).parent + project_root = script_dir.parents[4] # Go up from docs/source/_static/images/badges + pyproject_path = project_root / "pyproject.toml" + + if not pyproject_path.exists(): + print(f"Error: pyproject.toml not found at {pyproject_path}") + return + + # Read project info + with open(pyproject_path, "rb") as f: + pyproject = tomllib.load(f) + + project = pyproject.get("project", {}) + version = project.get("version", "0.0.0") + classifiers = project.get("classifiers", []) + + # Extract license from classifiers + license_name = "MIT" # Default + for classifier in classifiers: + if "License :: OSI Approved ::" in classifier: + license_name = classifier.split("::")[-1].strip() + # Shorten common license names + if "MIT" in license_name: + license_name = "MIT" + elif "BSD" in license_name: + license_name = "BSD" + elif "Apache" in license_name: + license_name = "Apache 2.0" + break + + python_range = extract_python_versions(classifiers) + + print(f"Generating badges for Hyperactive v{version}") + print(f" Python: {python_range}") + print(f" License: {license_name}") + + # Generate badges + badges = { + "version.svg": create_badge_svg("version", f"v{version}", COLORS["primary"]), + "python.svg": create_badge_svg("python", python_range, COLORS["primary"]), + "license.svg": create_badge_svg("license", license_name, COLORS["primary"]), + "sponsor.svg": create_badge_svg("GC.OS", "Sponsored", COLORS["sponsor"]), + } + + # Write badges + for filename, svg_content in badges.items(): + filepath = script_dir / filename + with open(filepath, "w") as f: + f.write(svg_content) + print(f" Created: {filename}") + + print("\nDone! Badges generated successfully.") + + +if __name__ == "__main__": + main() diff --git a/docs/source/_static/images/badges/license.svg b/docs/source/_static/images/badges/license.svg new file mode 100644 index 00000000..ed760277 --- /dev/null +++ b/docs/source/_static/images/badges/license.svg @@ -0,0 +1,11 @@ + + license: MIT + + + + + + license + + MIT + diff --git a/docs/source/_static/images/badges/python.svg b/docs/source/_static/images/badges/python.svg new file mode 100644 index 00000000..855acfcf --- /dev/null +++ b/docs/source/_static/images/badges/python.svg @@ -0,0 +1,11 @@ + + python: 3.10 - 3.14 + + + + + + python + + 3.10 - 3.14 + diff --git a/docs/source/_static/images/badges/sponsor.svg b/docs/source/_static/images/badges/sponsor.svg new file mode 100644 index 00000000..b140d8ec --- /dev/null +++ b/docs/source/_static/images/badges/sponsor.svg @@ -0,0 +1,11 @@ + + GC.OS: Sponsored + + + + + + GC.OS + + Sponsored + diff --git a/docs/source/_static/images/badges/version.svg b/docs/source/_static/images/badges/version.svg new file mode 100644 index 00000000..8ed5094b --- /dev/null +++ b/docs/source/_static/images/badges/version.svg @@ -0,0 +1,11 @@ + + version: v5.0.2 + + + + + + version + + v5.0.2 + diff --git a/docs/source/_static/images/bayes_convex.gif b/docs/source/_static/images/bayes_convex.gif new file mode 100644 index 0000000000000000000000000000000000000000..3133e2c4036cd2a0d5bb463ea5324161aaac98fb GIT binary patch literal 183902 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

ly37Skc)hKEPJGKUOXL}vbeXFqNKh%>3_ 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 vN8a*(*H2eN+k`@E)cK*#jF7ru*{Ir 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%0Ax4t{8Wui7cF3*|VmQ2)sC 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

0@FzOck@TJ~bE$0!#u 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 UV{RYjLjx~eEkjJ9rgg}_0qxL>NdN!< literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/navbar_logo.png b/docs/source/_static/images/navbar_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8aee08513a45a4d80703c7d23714df0d6e13aaee GIT binary patch literal 442647 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�Lf+07>&_$&EXm)H?$rmR+gKk{$E~ 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 z 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 M(l~oLIfE?R#ZN{Bo4~ccZD^_RTvB|UVI|c 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

-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�+i1U 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 tZ9rAl&45Bvrz_al2BmRY7)*hr + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/_static/images/navbar_logo_dark.svg b/docs/source/_static/images/navbar_logo_dark.svg new file mode 100644 index 00000000..be74742d --- /dev/null +++ b/docs/source/_static/images/navbar_logo_dark.svg @@ -0,0 +1,326 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/_templates/class.rst b/docs/source/_templates/class.rst new file mode 100644 index 00000000..17d61dc4 --- /dev/null +++ b/docs/source/_templates/class.rst @@ -0,0 +1,10 @@ +{{objname}} +{{ underline }}============== + +.. currentmodule:: {{ module }} + +.. autoclass:: {{ objname }} + +.. raw:: html + +

diff --git a/docs/source/_templates/function.rst b/docs/source/_templates/function.rst new file mode 100644 index 00000000..54226b73 --- /dev/null +++ b/docs/source/_templates/function.rst @@ -0,0 +1,10 @@ +{{objname}} +{{ underline }}==================== + +.. currentmodule:: {{ module }} + +.. autofunction:: {{ objname }} + +.. raw:: html + +
diff --git a/docs/source/_templates/layout.html b/docs/source/_templates/layout.html new file mode 100644 index 00000000..b43b96a9 --- /dev/null +++ b/docs/source/_templates/layout.html @@ -0,0 +1,6 @@ +{% extends "pydata_sphinx_theme/layout.html" %} + +{% block extrahead %} +{{ super() }} + +{% endblock %} diff --git a/docs/source/about.rst b/docs/source/about.rst new file mode 100644 index 00000000..7b342c8b --- /dev/null +++ b/docs/source/about.rst @@ -0,0 +1,107 @@ +.. _about: + +===== +About +===== + +Hyperactive is an optimization and data collection toolbox for convenient and fast +prototyping of computationally expensive models. + +.. toctree:: + :maxdepth: 1 + + about/team + about/history + about/license + + +About Hyperactive +----------------- + +Hyperactive provides a unified interface for hyperparameter optimization using +various gradient-free optimization algorithms. It supports optimization for +scikit-learn, sktime, skpro, and PyTorch Lightning models, as well as custom +objective functions. + + +Mission +^^^^^^^ + +Hyperactive aims to make hyperparameter optimization accessible and practical for +machine learning practitioners. By providing a unified API across many optimization +algorithms and ML frameworks, it reduces the barrier to finding optimal model +configurations. + + +Key Features +^^^^^^^^^^^^ + +- **20+ Optimization Algorithms**: From simple hill climbing to advanced Bayesian + optimization, population methods, and Optuna integration. + +- **Experiment-Based Architecture**: Clean separation between what to optimize + (experiments) and how to optimize (algorithms). + +- **Framework Integrations**: First-class support for scikit-learn, sktime, skpro, + and PyTorch Lightning. + +- **Flexible Search Spaces**: Discrete, continuous, and mixed parameter spaces + using familiar NumPy/list syntax. + +- **Production Ready**: Battle-tested since 2019 with comprehensive testing and + active maintenance. + + +Related Projects +^^^^^^^^^^^^^^^^ + +Hyperactive is part of a larger ecosystem: + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Project + - Description + * - `Gradient-Free-Optimizers `_ + - Core optimization algorithms used by Hyperactive + * - `Search-Data-Collector `_ + - Save search data during optimization to CSV files + * - `Search-Data-Explorer `_ + - Visualize search data with Plotly in a Streamlit dashboard + + +Sponsorship +^^^^^^^^^^^ + +Hyperactive is sponsored by the +`German Center for Open Source AI (GC.OS) `_. + +.. image:: https://img.shields.io/badge/GC.OS-Sponsored%20Project-orange.svg?style=for-the-badge&colorA=0eac92&colorB=2077b4 + :target: https://gc-os-ai.github.io/ + :alt: GC.OS Sponsored + + +Citing Hyperactive +^^^^^^^^^^^^^^^^^^ + +If you use Hyperactive in your research, please cite it: + +.. code-block:: bibtex + + @Misc{hyperactive2021, + author = {{Simon Blanke}}, + title = {{Hyperactive}: An optimization and data collection toolbox + for convenient and fast prototyping of computationally + expensive models.}, + howpublished = {\url{https://github.com/SimonBlanke}}, + year = {since 2019} + } + + +Community +^^^^^^^^^ + +- **GitHub**: `SimonBlanke/Hyperactive `_ +- **Discord**: `Join the community `_ +- **LinkedIn**: `German Center for Open Source AI `_ diff --git a/docs/source/about/history.rst b/docs/source/about/history.rst new file mode 100644 index 00000000..ce3033ff --- /dev/null +++ b/docs/source/about/history.rst @@ -0,0 +1,126 @@ +.. _history: + +======= +History +======= + +This page documents the history and evolution of Hyperactive. + + +Project History +--------------- + +Hyperactive was created in 2018 by Simon Blanke to address the need for a flexible, +unified interface for hyperparameter optimization in machine learning workflows. + + +Timeline +^^^^^^^^ + +**2018 - Project Creation** + Hyperactive was first released as an open-source project, providing a collection + of gradient-free optimization algorithms accessible through a simple Python API. + +**2019 - Growing Adoption** + The project gained traction in the machine learning community, with users + appreciating its straightforward interface and variety of optimization algorithms. + +**2020-2021 - Ecosystem Expansion** + Related projects were developed to complement Hyperactive: + + - **Gradient-Free-Optimizers**: The optimization backend was extracted into its + own package, allowing for more modular development. + - **Search-Data-Collector**: Tools for saving optimization results. + - **Search-Data-Explorer**: Visualization dashboard for exploring search data. + +**2022-2023 - Continued Development** + Active maintenance continued with bug fixes, new algorithms, and improved + documentation. The user base continued to grow. + +**2024 - Version 5.0 Redesign** + Major architecture redesign introducing: + + - **Experiment-based architecture**: Clean separation between optimization + problems (experiments) and optimization algorithms (optimizers). + - **Enhanced integrations**: Improved support for scikit-learn, sktime, skpro, + and PyTorch Lightning. + - **Optuna backend**: Integration with Optuna's optimization algorithms. + - **Modern Python support**: Support for Python 3.10 through 3.14. + +**2024 - GC.OS Sponsorship** + Hyperactive became a sponsored project of the German Center for Open Source AI + (GC.OS), ensuring continued development and maintenance. + + +Version History +--------------- + +Major Versions +^^^^^^^^^^^^^^ + +.. list-table:: + :header-rows: 1 + :widths: 15 85 + + * - Version + - Highlights + * - v5.0 + - Experiment-based architecture, Optuna integration, modern Python support + * - v4.x + - Improved API stability, additional optimizers + * - v3.x + - Search data collection features, expanded algorithm library + * - v2.x + - Multi-processing support, warm starting + * - v1.x + - Initial public release with core optimization algorithms + + +Breaking Changes +^^^^^^^^^^^^^^^^ + +Major version updates (e.g., v4 → v5) may include breaking API changes. +If you're upgrading from an older version: + +1. Check the `GitHub releases `_ + for migration guides. +2. Update your code to use the new API patterns. +3. Alternatively, pin your version to continue using the old API. + +.. code-block:: bash + + # Upgrade to latest + pip install hyperactive --upgrade + + # Or pin to specific version + pip install hyperactive==4.x.x + + +Legacy Documentation +^^^^^^^^^^^^^^^^^^^^ + +Documentation for Hyperactive v4 is still available at the legacy documentation site: + +`Legacy Documentation (v4) `_ + +This may be useful if you: + +- Are maintaining projects that use Hyperactive v4 +- Need to reference the previous API design +- Want to compare the old and new approaches + + +Future Roadmap +-------------- + +Hyperactive continues to evolve. Planned improvements include: + +- Additional optimization algorithms +- Enhanced visualization tools +- Improved distributed computing support +- More framework integrations +- Performance optimizations + +For the latest roadmap, see the +`GitHub Issues `_ and +`Discussions `_. diff --git a/docs/source/about/license.rst b/docs/source/about/license.rst new file mode 100644 index 00000000..498ed9ad --- /dev/null +++ b/docs/source/about/license.rst @@ -0,0 +1,99 @@ +.. _license: + +======= +License +======= + +Hyperactive is open-source software released under the MIT License. + + +MIT License +----------- + +.. code-block:: text + + MIT License + + Copyright (c) 2018 Simon Blanke + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. + + +What This Means +--------------- + +The MIT License is a permissive open-source license that allows you to: + +**You Can:** + +- Use Hyperactive for commercial projects +- Modify the source code +- Distribute copies +- Use it in private projects +- Sublicense the code + +**Requirements:** + +- Include the copyright notice and license text in any copies or substantial + portions of the software + +**Limitations:** + +- The software is provided "as is" without warranty +- The authors are not liable for any damages + + +Third-Party Licenses +-------------------- + +Hyperactive depends on several third-party packages, each with their own licenses: + +.. list-table:: + :header-rows: 1 + :widths: 30 30 40 + + * - Package + - License + - Purpose + * - NumPy + - BSD-3-Clause + - Numerical operations + * - pandas + - BSD-3-Clause + - Data manipulation + * - scikit-learn + - BSD-3-Clause + - Machine learning integration + * - Gradient-Free-Optimizers + - MIT + - Core optimization algorithms + * - tqdm + - MIT/MPL-2.0 + - Progress bars + +All dependencies use permissive open-source licenses compatible with commercial use. + + +Questions +--------- + +For questions about licensing or usage rights, please contact: + +- **Email**: simon.blanke@yahoo.com +- **GitHub Issues**: `Report an issue `_ diff --git a/docs/source/about/team.rst b/docs/source/about/team.rst new file mode 100644 index 00000000..352c4006 --- /dev/null +++ b/docs/source/about/team.rst @@ -0,0 +1,102 @@ +.. _team: + +==== +Team +==== + +Hyperactive is developed and maintained by a dedicated team of open-source contributors. + + +Core Team +--------- + +Simon Blanke +^^^^^^^^^^^^ + +**Creator and Lead Maintainer** + +Simon Blanke is the creator and primary maintainer of Hyperactive. He started the +project in 2018 to make hyperparameter optimization more accessible to machine +learning practitioners. + +- **GitHub**: `@SimonBlanke `_ +- **Email**: simon.blanke@yahoo.com + +Simon also maintains the related projects in the Hyperactive ecosystem: + +- `Gradient-Free-Optimizers `_ +- `Search-Data-Collector `_ +- `Search-Data-Explorer `_ + + +Contributors +------------ + +Hyperactive benefits from contributions by many developers. We appreciate everyone +who has helped improve the project through code, documentation, bug reports, and +feature suggestions. + +To see a full list of contributors, visit the +`GitHub contributors page `_. + + +Become a Contributor +^^^^^^^^^^^^^^^^^^^^ + +We welcome contributions from the community! There are many ways to get involved: + +- **Report bugs**: Open an issue on GitHub +- **Suggest features**: Share your ideas in GitHub Discussions +- **Contribute code**: Submit a pull request +- **Improve documentation**: Help make the docs better +- **Share examples**: Contribute use cases and tutorials + +See the :ref:`contributing` guide for more information on how to contribute. + + +Sponsorship +----------- + +German Center for Open Source AI (GC.OS) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Hyperactive is proudly sponsored by the +`German Center for Open Source AI (GC.OS) `_. + +.. image:: https://img.shields.io/badge/GC.OS-Sponsored%20Project-orange.svg?style=for-the-badge&colorA=0eac92&colorB=2077b4 + :target: https://gc-os-ai.github.io/ + :alt: GC.OS Sponsored + +This sponsorship helps ensure the continued development and maintenance of +Hyperactive as a high-quality open-source project. + + +Community +--------- + +Join the Hyperactive community: + +- **Discord**: `Join our Discord server `_ + for discussions, questions, and announcements. + +- **LinkedIn**: Follow the + `German Center for Open Source AI `_ + for updates. + +- **GitHub Discussions**: Participate in + `discussions `_ + about features and best practices. + + +Acknowledgments +--------------- + +We thank all users who have: + +- Reported bugs and issues +- Suggested new features +- Contributed to the codebase +- Helped improve the documentation +- Shared Hyperactive with others + +Your support makes this project possible! diff --git a/docs/source/api_reference.rst b/docs/source/api_reference.rst new file mode 100644 index 00000000..7f5996f7 --- /dev/null +++ b/docs/source/api_reference.rst @@ -0,0 +1,21 @@ +.. _api_reference: + +============= +API Reference +============= + +Welcome to the API reference for ``hyperactive``. + +The API reference provides a technical manual. +It describes the classes and functions included in Hyperactive. + +.. toctree:: + :maxdepth: 1 + + api_reference/base + api_reference/optimizers + api_reference/experiments_function + api_reference/experiments_integrations + api_reference/experiments_benchmarks + api_reference/sklearn_integration + api_reference/utilities diff --git a/docs/source/api_reference/base.rst b/docs/source/api_reference/base.rst new file mode 100644 index 00000000..a7dca433 --- /dev/null +++ b/docs/source/api_reference/base.rst @@ -0,0 +1,17 @@ +.. _base_ref: + +Base Classes +============ + +The :mod:`hyperactive.base` module contains the base classes for optimizers and experiments. + +All optimizers inherit from ``BaseOptimizer`` and all experiments inherit from ``BaseExperiment``. + +.. currentmodule:: hyperactive.base + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + BaseOptimizer + BaseExperiment diff --git a/docs/source/api_reference/experiments_benchmarks.rst b/docs/source/api_reference/experiments_benchmarks.rst new file mode 100644 index 00000000..0c46dba5 --- /dev/null +++ b/docs/source/api_reference/experiments_benchmarks.rst @@ -0,0 +1,19 @@ +.. _experiments_benchmarks_ref: + +Benchmark Function Experiments +=============================== + +The :mod:`hyperactive.experiment.bench` module contains standard benchmark functions +for testing and comparing optimization algorithms. + +These mathematical functions have known properties and are commonly used in optimization research. + +.. currentmodule:: hyperactive.experiment.bench + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + Ackley + Parabola + Sphere diff --git a/docs/source/api_reference/experiments_function.rst b/docs/source/api_reference/experiments_function.rst new file mode 100644 index 00000000..bef832ae --- /dev/null +++ b/docs/source/api_reference/experiments_function.rst @@ -0,0 +1,20 @@ +.. _experiments_function_ref: + +Function Experiments +==================== + +The :mod:`hyperactive.experiment` module contains experiment classes for defining +optimization objectives. + +Generic Function Experiment +---------------------------- + +The ``FunctionExperiment`` class allows you to wrap any callable as an optimization target. + +.. currentmodule:: hyperactive.experiment.func + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + FunctionExperiment diff --git a/docs/source/api_reference/experiments_integrations.rst b/docs/source/api_reference/experiments_integrations.rst new file mode 100644 index 00000000..913e249a --- /dev/null +++ b/docs/source/api_reference/experiments_integrations.rst @@ -0,0 +1,57 @@ +.. _experiments_integrations_ref: + +Framework Integration Experiments +================================== + +The :mod:`hyperactive.experiment.integrations` module contains experiment classes +for integration with machine learning frameworks. + +These experiments provide seamless hyperparameter optimization for scikit-learn, +sktime, skpro, and PyTorch Lightning models. + +Scikit-Learn +------------ + +Cross-validation experiments for scikit-learn estimators. + +.. currentmodule:: hyperactive.experiment.integrations + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + SklearnCvExperiment + +Sktime - Time Series +-------------------- + +Experiments for sktime time series models. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + SktimeClassificationExperiment + SktimeForecastingExperiment + +Skpro - Probabilistic Prediction +--------------------------------- + +Experiments for skpro probabilistic regression models. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + SkproProbaRegExperiment + +PyTorch Lightning +----------------- + +Experiments for PyTorch Lightning models. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + TorchExperiment diff --git a/docs/source/api_reference/optimizers.rst b/docs/source/api_reference/optimizers.rst new file mode 100644 index 00000000..ab9f0224 --- /dev/null +++ b/docs/source/api_reference/optimizers.rst @@ -0,0 +1,128 @@ +.. _optimizers_ref: + +Optimizers +========== + +The :mod:`hyperactive.opt` module contains optimization algorithms for hyperparameter tuning. + +All optimizers inherit from :class:`hyperactive.base.BaseOptimizer` and share the same interface: +the ``solve()`` method to run optimization, and configuration via the ``experiment`` and ``search_space`` parameters. + +Gradient-Free Optimizers (GFO) +------------------------------- + +These optimizers are based on the gradient-free-optimizers package and implement +various metaheuristic and numerical optimization algorithms. + +Local Search +~~~~~~~~~~~~ + +Local search algorithms that explore the neighborhood of the current position. + +.. currentmodule:: hyperactive.opt + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + HillClimbing + StochasticHillClimbing + RepulsingHillClimbing + RandomRestartHillClimbing + +Simulated Annealing +~~~~~~~~~~~~~~~~~~~ + +Probabilistic techniques for approximating the global optimum. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + SimulatedAnnealing + +Global Search +~~~~~~~~~~~~~ + +Random and systematic search strategies. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + RandomSearch + GridSearch + +Direct Methods +~~~~~~~~~~~~~~ + +Direct search methods that do not use gradients. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + DownhillSimplexOptimizer + PowellsMethod + PatternSearch + LipschitzOptimizer + DirectAlgorithm + +Population-Based +~~~~~~~~~~~~~~~~ + +Optimization algorithms that maintain and evolve populations of solutions. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + ParallelTempering + ParticleSwarmOptimizer + SpiralOptimization + GeneticAlgorithm + EvolutionStrategy + DifferentialEvolution + +Sequential Model-Based +~~~~~~~~~~~~~~~~~~~~~~ + +Algorithms that build surrogate models of the objective function. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + BayesianOptimizer + TreeStructuredParzenEstimators + ForestOptimizer + +Optuna-Based Optimizers +------------------------ + +These optimizers provide an interface to Optuna's optimization algorithms. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + TPEOptimizer + RandomOptimizer + CmaEsOptimizer + GPOptimizer + GridOptimizer + NSGAIIOptimizer + NSGAIIIOptimizer + QMCOptimizer + +Scikit-Learn Style +------------------- + +Optimizers with a scikit-learn compatible interface. + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + GridSearchSk + RandomSearchSk diff --git a/docs/source/api_reference/sklearn_integration.rst b/docs/source/api_reference/sklearn_integration.rst new file mode 100644 index 00000000..82e454de --- /dev/null +++ b/docs/source/api_reference/sklearn_integration.rst @@ -0,0 +1,18 @@ +.. _sklearn_integration_ref: + +Scikit-Learn Integration +========================= + +The :mod:`hyperactive.integrations.sklearn` module provides scikit-learn compatible +meta-estimators for hyperparameter optimization. + +These classes follow the scikit-learn estimator API and can be used as drop-in replacements +for scikit-learn's GridSearchCV and RandomizedSearchCV. + +.. currentmodule:: hyperactive.integrations.sklearn + +.. autosummary:: + :toctree: auto_generated/ + :template: class.rst + + OptCV diff --git a/docs/source/api_reference/utilities.rst b/docs/source/api_reference/utilities.rst new file mode 100644 index 00000000..c531e044 --- /dev/null +++ b/docs/source/api_reference/utilities.rst @@ -0,0 +1,18 @@ +.. _utilities_ref: + +Utilities +========= + +The :mod:`hyperactive.utils` module contains utility functions for working with +Hyperactive estimators. + +Estimator Validation +-------------------- + +.. currentmodule:: hyperactive.utils + +.. autosummary:: + :toctree: auto_generated/ + :template: function.rst + + check_estimator diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 00000000..de3e263e --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,435 @@ +#!/usr/bin/env python3 +"""Configuration file for the Sphinx documentation builder.""" + +import datetime +import os +import re +import sys +from pathlib import Path + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. + +ON_READTHEDOCS = os.environ.get("READTHEDOCS") == "True" +if not ON_READTHEDOCS: + sys.path.insert(0, os.path.abspath("../../src")) + +import hyperactive # noqa: E402 # must be after sys.path modification + +# -- Extract metadata from pyproject.toml ------------------------------------ +# This allows documentation to stay in sync with pyproject.toml automatically + + +def extract_pyproject_metadata(): + """Extract metadata from pyproject.toml for use in documentation.""" + pyproject_path = Path(__file__).parent.parent.parent / "pyproject.toml" + + metadata = { + "python_versions": [], + "min_python": "3.10", + "dependencies": [], + "version": hyperactive.__version__, + } + + if pyproject_path.exists(): + content = pyproject_path.read_text() + + # Extract Python versions from classifiers + # Pattern: "Programming Language :: Python :: 3.XX" + py_version_pattern = r'"Programming Language :: Python :: (3\.\d+)"' + versions = re.findall(py_version_pattern, content) + if versions: + metadata["python_versions"] = sorted(set(versions)) + + # Extract requires-python + requires_python_match = re.search(r'requires-python\s*=\s*"([^"]+)"', content) + if requires_python_match: + req = requires_python_match.group(1) + # Extract minimum version from ">=3.10" or similar + min_match = re.search(r">=\s*([\d.]+)", req) + if min_match: + metadata["min_python"] = min_match.group(1) + + # Extract core dependencies + deps_match = re.search(r"dependencies\s*=\s*\[(.*?)\]", content, re.DOTALL) + if deps_match: + deps_text = deps_match.group(1) + # Extract package names (first word before any version specifier) + dep_names = re.findall(r'"([a-zA-Z][a-zA-Z0-9_-]*)', deps_text) + metadata["dependencies"] = dep_names + + return metadata + + +# Extract metadata once at configuration time +PYPROJECT_METADATA = extract_pyproject_metadata() + +# Build Python version range string from metadata +_py_versions = PYPROJECT_METADATA["python_versions"] +if _py_versions: + _py_version_range = f"{_py_versions[0]} - {_py_versions[-1]}" +else: + _py_version_range = "3.10+" + +# -- Project information ----------------------------------------------------- +current_year = datetime.datetime.now().year +project = "hyperactive" +project_copyright = f"2019 - {current_year} (MIT License)" +author = "Simon Blanke" + +# The full version, including alpha/beta/rc tags +CURRENT_VERSION = f"v{hyperactive.__version__}" + +# If on readthedocs, and we're building the latest version, update tag to generate +# correct links in notebooks +if ON_READTHEDOCS: + READTHEDOCS_VERSION = os.environ.get("READTHEDOCS_VERSION") + if READTHEDOCS_VERSION == "latest": + CURRENT_VERSION = "main" + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.autosummary", + "sphinx.ext.autosectionlabel", + "numpydoc", + "sphinx.ext.intersphinx", + "sphinx.ext.linkcode", # link to GitHub source code via linkcode_resolve() + "myst_parser", + "sphinx_copybutton", + "sphinx_design", + "sphinx_issues", + "sphinx.ext.doctest", +] + +# Recommended by sphinx_design when using the MyST Parser +myst_enable_extensions = ["colon_fence"] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = { + ".rst": "restructuredtext", + ".md": "markdown", +} + +# The main toctree document. +master_doc = "index" + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = "en" + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [ + "_build", + ".ipynb_checkpoints", + "Thumbs.db", + ".DS_Store", +] + +add_module_names = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +# see http://stackoverflow.com/q/12206334/562769 +numpydoc_show_class_members = True +# this is needed for some reason... +# see https://github.com/numpy/numpydoc/issues/69 +numpydoc_class_members_toctree = False + +# https://numpydoc.readthedocs.io/en/latest/validation.html#built-in-validation-checks +# Let's turn off the check for building but keep it in pre-commit hooks +numpydoc_validation_checks = set() + +# generate autosummary even if no references +autosummary_generate = True + +# Members and inherited-members default to showing methods and attributes from a +# class or those inherited. +# Member-order orders the documentation in the order of how the members are defined in +# the source code. +autodoc_default_options = { + "members": True, + "inherited-members": True, + "member-order": "bysource", +} + +# If true, '()' will be appended to :func: etc. cross-reference text. +add_function_parentheses = False + +# Suppress warnings +suppress_warnings = [ + "myst.mathjax", + "docutils", + "toc.not_included", + "autodoc.import_object", + "autosectionlabel", + "ref", +] + +show_warning_types = True + +# Link to GitHub repo for github_issues extension +issues_github_path = "SimonBlanke/Hyperactive" + + +def linkcode_resolve(domain, info): + """Return URL to source code corresponding. + + Parameters + ---------- + domain : str + info : dict + + Returns + ------- + url : str + """ + + def find_source(): + # try to find the file and line number, based on code from numpy: + # https://github.com/numpy/numpy/blob/main/doc/source/conf.py#L286 + obj = sys.modules[info["module"]] + for part in info["fullname"].split("."): + obj = getattr(obj, part) + import inspect + import os + + fn = inspect.getsourcefile(obj) + fn = os.path.relpath(fn, start=os.path.dirname(hyperactive.__file__)) + source, lineno = inspect.getsourcelines(obj) + return fn, lineno, lineno + len(source) - 1 + + if domain != "py" or not info["module"]: + return None + try: + filename = "src/hyperactive/%s#L%d-L%d" % find_source() + except Exception: + filename = info["module"].replace(".", "/") + ".py" + return ( + f"https://github.com/SimonBlanke/Hyperactive/blob/{CURRENT_VERSION}/{filename}" + ) + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. + +html_theme = "pydata_sphinx_theme" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. + +html_theme_options = { + "logo": { + "image_light": "_static/images/navbar_logo.svg", + "image_dark": "_static/images/navbar_logo_dark.svg", + }, + "icon_links": [ + { + "name": "GitHub", + "url": "https://github.com/SimonBlanke/Hyperactive", + "icon": "fab fa-github", + }, + { + "name": "Star on GitHub", + "url": "https://github.com/SimonBlanke/Hyperactive/stargazers", + "icon": "fa-regular fa-star", + }, + ], + "show_prev_next": False, + "use_edit_page_button": False, + "navbar_start": ["navbar-logo"], + "navbar_center": ["navbar-nav"], + "navbar_end": ["theme-switcher", "navbar-icon-links"], + "show_toc_level": 2, + "secondary_sidebar_items": ["page-toc", "sourcelink"], +} + +html_title = "Hyperactive" +html_context = { + "github_user": "SimonBlanke", + "github_repo": "Hyperactive", + "github_version": "master", + "doc_path": "auto-doc/source/", + "python_version_range": _py_version_range, +} + +html_sidebars = { + "**": ["sidebar-nav-bs.html"], + "index": [], + "get_started": [], + "installation": [], + "search": [], +} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] +html_css_files = ["css/custom.css"] + +html_show_sourcelink = False + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = "hyperactivedoc" + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # 'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + # 'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + # 'preamble': '', + # Latex figure (float) alignment + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + master_doc, + "hyperactive.tex", + "Hyperactive Documentation", + "Simon Blanke", + "manual", + ), +] + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [(master_doc, "hyperactive", "Hyperactive Documentation", [author], 1)] + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + master_doc, + "hyperactive", + "Hyperactive Documentation", + author, + "hyperactive", + "An optimization and data collection toolbox for convenient and fast prototyping.", + "Miscellaneous", + ), +] + + +def setup(app): + """Set up sphinx builder. + + Parameters + ---------- + app : Sphinx application object + """ + + def adds(pth): + print("Adding stylesheet: %s" % pth) # noqa: T201, T001 + app.add_css_file(pth) + + adds("fields.css") # for parameters, etc. + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = { + "python": (f"https://docs.python.org/{sys.version_info.major}", None), + "numpy": ("https://numpy.org/doc/stable/", None), + "scipy": ("https://docs.scipy.org/doc/scipy/", None), + "matplotlib": ("https://matplotlib.org/stable/", None), + "pandas": ("https://pandas.pydata.org/pandas-docs/stable/", None), + "joblib": ("https://joblib.readthedocs.io/en/stable/", None), + "scikit-learn": ("https://scikit-learn.org/stable/", None), +} + +# -- Options for todo extension ---------------------------------------------- +todo_include_todos = False + +copybutton_prompt_text = r">>> |\.\.\. |\$ " +copybutton_prompt_is_regexp = True +copybutton_line_continuation_character = "\\" + +# -- RST Epilog: Make metadata available as substitutions in RST files ------- +# These can be used as |variable_name| in RST files + +# Build additional Python versions formatting for RST +if _py_versions: + _py_versions_inline = ", ".join(_py_versions) +else: + _py_versions_inline = "3.10+" + + +# -- Count algorithms and integrations dynamically ---------------------------- +def count_from_all_list(module_path: str) -> int: + """Count items in __all__ list of a Python module file.""" + import ast + + file_path = Path(__file__).parent.parent.parent / "src" / module_path + if not file_path.exists(): + return 0 + + try: + tree = ast.parse(file_path.read_text()) + for node in ast.walk(tree): + if isinstance(node, ast.Assign): + for target in node.targets: + if isinstance(target, ast.Name) and target.id == "__all__": + if isinstance(node.value, ast.List): + return len(node.value.elts) + except Exception: + pass + return 0 + + +# Count algorithms from opt/__init__.py +_n_algorithms = count_from_all_list("hyperactive/opt/__init__.py") + +# Count integrations from experiment/integrations/__init__.py +_n_integrations = count_from_all_list("hyperactive/experiment/integrations/__init__.py") + +# Backends are conceptual (GFO, Optuna, sklearn) - hardcoded +_n_backends = 3 + + +rst_epilog = f""" +.. |version| replace:: {PYPROJECT_METADATA["version"]} +.. |min_python| replace:: {PYPROJECT_METADATA["min_python"]} +.. |python_versions_list| replace:: {_py_versions_inline} +.. |python_version_range| replace:: {_py_version_range} +.. |current_year| replace:: {current_year} +.. |n_algorithms| replace:: {_n_algorithms} +.. |n_backends| replace:: {_n_backends} +.. |n_integrations| replace:: {_n_integrations} +""" diff --git a/docs/source/examples.rst b/docs/source/examples.rst new file mode 100644 index 00000000..c8b88c45 --- /dev/null +++ b/docs/source/examples.rst @@ -0,0 +1,83 @@ +.. _examples: + +======== +Examples +======== + +This section provides a collection of examples demonstrating Hyperactive's capabilities. +All examples are available in the +`examples directory `_ +on GitHub. + +.. toctree:: + :maxdepth: 1 + + examples/general + examples/local_search + examples/global_search + examples/population_based + examples/sequential_model_based + examples/optuna_backend + examples/sklearn_backend + examples/integrations + examples/other + examples/interactive_tutorial + + +Overview +-------- + +Hyperactive provides examples for all optimization algorithms and integration +patterns. The examples are organized by algorithm category: + + +Gradient-Free Optimizers (GFO) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:ref:`examples_general` + Basic examples showing custom function optimization and sklearn model tuning. + +:ref:`examples_local_search` + Hill Climbing, Simulated Annealing, Downhill Simplex, and other local + search methods that explore by making incremental moves. + +:ref:`examples_global_search` + Random Search, Grid Search, Powell's Method, and other algorithms that + explore the search space more broadly. + +:ref:`examples_population_based` + Particle Swarm, Genetic Algorithm, Evolution Strategy, and other + nature-inspired population methods. + +:ref:`examples_sequential_model_based` + Bayesian Optimization, Tree-Parzen Estimators, and other model-based + methods that learn from previous evaluations. + + +Backend Examples +^^^^^^^^^^^^^^^^ + +:ref:`examples_optuna_backend` + Examples using Optuna's samplers including TPE, CMA-ES, NSGA-II/III, + and Gaussian Process optimization. + +:ref:`examples_sklearn_backend` + Scikit-learn compatible interfaces as drop-in replacements for + GridSearchCV and RandomizedSearchCV. + + +Integration Examples +^^^^^^^^^^^^^^^^^^^^ + +:ref:`examples_integrations` + Time series optimization with sktime and other framework integrations. + + +Advanced Topics +^^^^^^^^^^^^^^^ + +:ref:`examples_other` + Advanced usage patterns including warm starting and optimizer comparison. + +:ref:`examples_interactive_tutorial` + Comprehensive Jupyter notebook tutorial covering all Hyperactive features. diff --git a/docs/source/examples/general.rst b/docs/source/examples/general.rst new file mode 100644 index 00000000..113171b8 --- /dev/null +++ b/docs/source/examples/general.rst @@ -0,0 +1,47 @@ +.. _examples_general: + +================ +General Examples +================ + +These examples demonstrate Hyperactive's core functionality with simple, +illustrative use cases. + + +Running Examples +---------------- + +All examples are available in the +`examples directory `_ +on GitHub. You can run any example directly: + +.. code-block:: bash + + # Clone the repository + git clone https://github.com/SimonBlanke/Hyperactive.git + cd Hyperactive/examples + + # Run an example + python gfo/hill_climbing_example.py + + +Custom Function Optimization +---------------------------- + +The simplest use case: optimizing a mathematical function. + +.. literalinclude:: ../_snippets/examples/basic_examples.py + :language: python + :start-after: # [start:custom_function] + :end-before: # [end:custom_function] + + +Scikit-learn Model Tuning +------------------------- + +Hyperparameter optimization for machine learning models. + +.. literalinclude:: ../_snippets/examples/basic_examples.py + :language: python + :start-after: # [start:sklearn_tuning] + :end-before: # [end:sklearn_tuning] diff --git a/docs/source/examples/global_search.rst b/docs/source/examples/global_search.rst new file mode 100644 index 00000000..d50ec5d5 --- /dev/null +++ b/docs/source/examples/global_search.rst @@ -0,0 +1,44 @@ +.. _examples_global_search: + +======================== +Global Search Algorithms +======================== + +Global search algorithms explore the search space more broadly, using +randomization or systematic patterns to avoid getting trapped in local optima. + + +Algorithm Examples +------------------ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Algorithm + - Example + * - Random Search + - `random_search_example.py `_ + * - Grid Search + - `grid_search_example.py `_ + * - Random Restart Hill Climbing + - `random_restart_hill_climbing_example.py `_ + * - Stochastic Hill Climbing + - `stochastic_hill_climbing_example.py `_ + * - Powell's Method + - `powells_method_example.py `_ + * - Pattern Search + - `pattern_search_example.py `_ + + +When to Use Global Search +------------------------- + +Global search algorithms are best suited for: + +- **Multimodal search spaces** with multiple local optima +- **Initial exploration** before fine-tuning with local search +- **Unknown search spaces** where the landscape is not well understood +- **Baseline comparisons** (especially Random Search) + +See :ref:`user_guide_optimizers` for detailed algorithm descriptions. diff --git a/docs/source/examples/integrations.rst b/docs/source/examples/integrations.rst new file mode 100644 index 00000000..2fff131c --- /dev/null +++ b/docs/source/examples/integrations.rst @@ -0,0 +1,49 @@ +.. _examples_integrations: + +============ +Integrations +============ + +Hyperactive integrates with popular machine learning frameworks beyond +scikit-learn, including time series libraries. + + +Sktime Integration +------------------ + +For time series forecasting and classification with sktime: + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Use Case + - Example + * - Time Series Forecasting + - `sktime_forecasting_example.py `_ + * - Time Series Classification + - `sktime_tsc_example.py `_ + +.. note:: + + Sktime integration requires additional dependencies: + + .. code-block:: bash + + pip install hyperactive[sktime-integration] + + +Installing Extras +----------------- + +Install integration extras as needed: + +.. code-block:: bash + + # Sktime/skpro for time series + pip install hyperactive[sktime-integration] + + # All extras including PyTorch Lightning + pip install hyperactive[all_extras] + +See :ref:`user_guide_integrations` for complete integration documentation. diff --git a/docs/source/examples/interactive_tutorial.rst b/docs/source/examples/interactive_tutorial.rst new file mode 100644 index 00000000..b4e63e75 --- /dev/null +++ b/docs/source/examples/interactive_tutorial.rst @@ -0,0 +1,50 @@ +.. _examples_interactive_tutorial: + +==================== +Interactive Tutorial +==================== + +For hands-on learning, we provide a comprehensive Jupyter notebook tutorial +that covers all aspects of Hyperactive. + + +Tutorial Notebook +----------------- + +`Hyperactive Tutorial Notebook `_ + +This interactive notebook covers: + +- **Basic optimization concepts** — Understanding search spaces and objective functions +- **All optimizer categories** — Hands-on examples with each algorithm type +- **Real-world ML examples** — Practical hyperparameter optimization workflows +- **Best practices and tips** — Common pitfalls and how to avoid them + + +Running the Tutorial +-------------------- + +You can run the tutorial locally: + +.. code-block:: bash + + # Clone the tutorial repository + git clone https://github.com/SimonBlanke/hyperactive-tutorial.git + cd hyperactive-tutorial + + # Install dependencies + pip install -r requirements.txt + + # Launch Jupyter + jupyter notebook notebooks/hyperactive_tutorial.ipynb + +Or view it directly on `nbviewer `_ +without any installation. + + +Additional Resources +-------------------- + +- `Hyperactive GitHub Repository `_ +- `Gradient-Free-Optimizers `_ — The underlying optimization library +- :ref:`user_guide` — Detailed documentation of all features diff --git a/docs/source/examples/local_search.rst b/docs/source/examples/local_search.rst new file mode 100644 index 00000000..d4c9ad7a --- /dev/null +++ b/docs/source/examples/local_search.rst @@ -0,0 +1,41 @@ +.. _examples_local_search: + +======================= +Local Search Algorithms +======================= + +Local search algorithms explore the search space by making small, incremental +moves from the current position. They are efficient for finding local optima +but may get stuck without escaping mechanisms. + + +Algorithm Examples +------------------ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Algorithm + - Example + * - Hill Climbing + - `hill_climbing_example.py `_ + * - Repulsing Hill Climbing + - `repulsing_hill_climbing_example.py `_ + * - Simulated Annealing + - `simulated_annealing_example.py `_ + * - Downhill Simplex + - `downhill_simplex_example.py `_ + + +When to Use Local Search +------------------------ + +Local search algorithms are best suited for: + +- **Smooth search spaces** where nearby points have similar scores +- **Fine-tuning** around a known good region +- **Fast convergence** when a good starting point is available +- **Limited computational budget** where few evaluations are possible + +See :ref:`user_guide_optimizers` for detailed algorithm descriptions. diff --git a/docs/source/examples/optuna_backend.rst b/docs/source/examples/optuna_backend.rst new file mode 100644 index 00000000..3a8067b7 --- /dev/null +++ b/docs/source/examples/optuna_backend.rst @@ -0,0 +1,56 @@ +.. _examples_optuna_backend: + +============== +Optuna Backend +============== + +Hyperactive provides wrappers for Optuna's optimization algorithms, allowing +you to use Optuna's powerful samplers with Hyperactive's interface. + +.. note:: + + Optuna must be installed separately: + + .. code-block:: bash + + pip install optuna + # or + pip install hyperactive[all_extras] + + +Sampler Examples +---------------- + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Sampler + - Example + * - TPE (Tree-Parzen Estimator) + - `tpe_sampler_example.py `_ + * - CMA-ES + - `cmaes_sampler_example.py `_ + * - Gaussian Process + - `gp_sampler_example.py `_ + * - NSGA-II + - `nsga_ii_sampler_example.py `_ + * - NSGA-III + - `nsga_iii_sampler_example.py `_ + * - QMC (Quasi-Monte Carlo) + - `qmc_sampler_example.py `_ + * - Random + - `random_sampler_example.py `_ + * - Grid + - `grid_sampler_example.py `_ + + +When to Use Optuna Backend +-------------------------- + +The Optuna backend is useful when you need: + +- **Multi-objective optimization** (NSGA-II, NSGA-III) +- **Advanced sampling strategies** like CMA-ES or QMC +- **Optuna's pruning capabilities** for early stopping +- **Compatibility** with existing Optuna workflows diff --git a/docs/source/examples/other.rst b/docs/source/examples/other.rst new file mode 100644 index 00000000..ce96ca09 --- /dev/null +++ b/docs/source/examples/other.rst @@ -0,0 +1,46 @@ +.. _examples_other: + +================= +Advanced Examples +================= + +These examples demonstrate advanced Hyperactive features for more sophisticated +optimization workflows. + + +Warm Starting Optimization +-------------------------- + +Start optimization from known good points to accelerate convergence: + +.. literalinclude:: ../_snippets/examples/advanced_examples.py + :language: python + :start-after: # [start:warm_starting] + :end-before: # [end:warm_starting] + + +Comparing Optimizers +-------------------- + +Compare different optimization strategies on the same problem: + +.. literalinclude:: ../_snippets/examples/advanced_examples.py + :language: python + :start-after: # [start:comparing_optimizers] + :end-before: # [end:comparing_optimizers] + + +Tips for Advanced Usage +----------------------- + +**Warm Starting** + +- Use results from previous runs to seed new optimizations +- Helpful when iterating on model architecture or features +- Combine with local search for fine-tuning around known good points + +**Optimizer Comparison** + +- Always use the same ``random_state`` for reproducible comparisons +- Run multiple trials to account for optimizer randomness +- Consider both final score and convergence speed diff --git a/docs/source/examples/population_based.rst b/docs/source/examples/population_based.rst new file mode 100644 index 00000000..f115457f --- /dev/null +++ b/docs/source/examples/population_based.rst @@ -0,0 +1,45 @@ +.. _examples_population_based: + +=========================== +Population-Based Algorithms +=========================== + +Population-based algorithms maintain multiple candidate solutions simultaneously, +using mechanisms inspired by natural evolution or swarm behavior to explore +the search space efficiently. + + +Algorithm Examples +------------------ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Algorithm + - Example + * - Particle Swarm + - `particle_swarm_example.py `_ + * - Genetic Algorithm + - `genetic_algorithm_example.py `_ + * - Evolution Strategy + - `evolution_strategy_example.py `_ + * - Differential Evolution + - `differential_evolution_example.py `_ + * - Parallel Tempering + - `parallel_tempering_example.py `_ + * - Spiral Optimization + - `spiral_optimization_example.py `_ + + +When to Use Population-Based Methods +------------------------------------ + +Population-based algorithms are best suited for: + +- **Complex, multimodal landscapes** with many local optima +- **Parallelizable evaluations** where multiple candidates can be evaluated simultaneously +- **Robust optimization** where diversity helps avoid premature convergence +- **Large search spaces** requiring extensive exploration + +See :ref:`user_guide_optimizers` for detailed algorithm descriptions. diff --git a/docs/source/examples/sequential_model_based.rst b/docs/source/examples/sequential_model_based.rst new file mode 100644 index 00000000..bde4fca2 --- /dev/null +++ b/docs/source/examples/sequential_model_based.rst @@ -0,0 +1,43 @@ +.. _examples_sequential_model_based: + +================================= +Sequential Model-Based Algorithms +================================= + +Sequential model-based optimization (SMBO) algorithms build a surrogate model +of the objective function to guide the search. They are particularly effective +when function evaluations are expensive. + + +Algorithm Examples +------------------ + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Algorithm + - Example + * - Bayesian Optimization + - `bayesian_optimization_example.py `_ + * - Tree-Parzen Estimators + - `tree_structured_parzen_estimators_example.py `_ + * - Forest Optimizer + - `forest_optimizer_example.py `_ + * - Lipschitz Optimizer + - `lipschitz_optimizer_example.py `_ + * - DIRECT Algorithm + - `direct_algorithm_example.py `_ + + +When to Use Model-Based Methods +------------------------------- + +Sequential model-based algorithms are best suited for: + +- **Expensive objective functions** (e.g., training neural networks, simulations) +- **Limited evaluation budgets** where each evaluation counts +- **Smooth, continuous search spaces** where surrogate models work well +- **Hyperparameter optimization** for machine learning models + +See :ref:`user_guide_optimizers` for detailed algorithm descriptions. diff --git a/docs/source/examples/sklearn_backend.rst b/docs/source/examples/sklearn_backend.rst new file mode 100644 index 00000000..b74f0623 --- /dev/null +++ b/docs/source/examples/sklearn_backend.rst @@ -0,0 +1,57 @@ +.. _examples_sklearn_backend: + +=============== +Sklearn Backend +=============== + +Hyperactive provides scikit-learn compatible interfaces that work as drop-in +replacements for ``GridSearchCV`` and ``RandomizedSearchCV``. + + +Example Files +------------- + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Use Case + - Example + * - Classification with OptCV + - `sklearn_classif_example.py `_ + * - Grid Search + - `grid_search_example.py `_ + * - Random Search + - `random_search_example.py `_ + + +Usage Overview +-------------- + +Hyperactive's sklearn-compatible classes follow the familiar fit/predict pattern: + +.. code-block:: python + + from hyperactive.integrations.sklearn import HyperactiveSearchCV + from sklearn.ensemble import RandomForestClassifier + + # Define search space + param_space = { + "n_estimators": [50, 100, 200], + "max_depth": [5, 10, 15, None], + } + + # Create search object + search = HyperactiveSearchCV( + estimator=RandomForestClassifier(), + param_space=param_space, + n_iter=50, + ) + + # Fit like any sklearn estimator + search.fit(X_train, y_train) + + # Access best parameters + print(search.best_params_) + +See :ref:`user_guide_integrations` for complete documentation. diff --git a/docs/source/faq.rst b/docs/source/faq.rst new file mode 100644 index 00000000..ed5360a9 --- /dev/null +++ b/docs/source/faq.rst @@ -0,0 +1,40 @@ +.. _faq: + +========================== +Frequently Asked Questions +========================== + +This section answers common questions about Hyperactive. For migration from v4, +see the :ref:`user_guide_migration`. + +.. toctree:: + :maxdepth: 1 + + faq/getting_started + faq/search_space + faq/common_issues + faq/advanced_usage + faq/integrations + faq/getting_help + + +Overview +-------- + +:ref:`faq_getting_started` + Choosing optimizers, iteration counts, and understanding maximization. + +:ref:`faq_search_space` + Defining continuous, discrete, and mixed parameter spaces. + +:ref:`faq_common_issues` + Slow optimization, reproducibility, handling errors. + +:ref:`faq_advanced_usage` + Parallel execution, callbacks, parameter constraints. + +:ref:`faq_integrations` + Using Hyperactive with PyTorch, XGBoost, and other frameworks. + +:ref:`faq_getting_help` + Where to report bugs and get support. diff --git a/docs/source/faq/advanced_usage.rst b/docs/source/faq/advanced_usage.rst new file mode 100644 index 00000000..2199cc38 --- /dev/null +++ b/docs/source/faq/advanced_usage.rst @@ -0,0 +1,69 @@ +.. _faq_advanced_usage: + +============== +Advanced Usage +============== + +Can I run optimizations in parallel? +------------------------------------ + +Currently, Hyperactive v5 runs single optimizer instances. +For parallel evaluation of candidates, consider using Optuna +backend optimizers which support parallel trials: + +.. code-block:: python + + from hyperactive.opt.optuna import TPEOptimizer + + optimizer = TPEOptimizer( + search_space=search_space, + n_iter=100, + experiment=objective, + # Optuna handles parallelization + ) + + +Can I save and resume optimization? +----------------------------------- + +This feature is planned but not yet available in v5. As a workaround, +you can log results during optimization and use them as initial points +for a new run. + + +Are callbacks supported? +------------------------ + +User-defined callbacks during optimization are not currently supported in v5. +The Optuna backend has internal early-stopping callbacks, but there's no +general callback interface for tracking progress or modifying behavior during +optimization. + +For progress monitoring, you can add logging inside your objective function: + +.. code-block:: python + + iteration = 0 + + def objective(params): + global iteration + iteration += 1 + score = evaluate_model(params) + print(f"Iteration {iteration}: score={score:.4f}") + return score + + +How do I add constraints between parameters? +-------------------------------------------- + +Handle constraints in your objective function by returning a poor score +for invalid combinations: + +.. code-block:: python + + def objective(params): + # Constraint: min_samples_split must be >= min_samples_leaf + if params["min_samples_split"] < params["min_samples_leaf"]: + return -np.inf # Invalid configuration + + return evaluate_model(params) diff --git a/docs/source/faq/common_issues.rst b/docs/source/faq/common_issues.rst new file mode 100644 index 00000000..e95f3466 --- /dev/null +++ b/docs/source/faq/common_issues.rst @@ -0,0 +1,72 @@ +.. _faq_common_issues: + +============= +Common Issues +============= + +Why is my optimization slow? +---------------------------- + +**Slow objective function**: The optimizer only controls search strategy. +If each evaluation takes a long time, consider: + +- Reducing cross-validation folds +- Using a subset of training data for tuning +- Simplifying your model during search + +**Large search space**: More combinations require more iterations. +Consider reducing parameter granularity or using smarter optimizers +like Bayesian optimization. + +**Too many iterations**: Start with fewer iterations and increase +if needed. + + +Why does my score vary between runs? +------------------------------------ + +Optimization algorithms are stochastic. To get reproducible results, +set a random seed: + +.. code-block:: python + + optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, + random_state=42, # Set seed for reproducibility + ) + + +My objective function returns NaN or raises exceptions +------------------------------------------------------ + +Handle invalid configurations in your objective function: + +.. code-block:: python + + def objective(params): + try: + score = evaluate_model(params) + if np.isnan(score): + return -np.inf # Return worst possible score + return score + except Exception: + return -np.inf # Return worst possible score on error + + +How do I see what parameters were tried? +---------------------------------------- + +Access the search history after optimization: + +.. code-block:: python + + best_params = optimizer.solve() + + # Access results + print(f"Best parameters: {optimizer.best_params_}") + print(f"Best score: {optimizer.best_score_}") + + # Full search history (if available) + # Check optimizer attributes for search_data or similar diff --git a/docs/source/faq/getting_help.rst b/docs/source/faq/getting_help.rst new file mode 100644 index 00000000..acb918cb --- /dev/null +++ b/docs/source/faq/getting_help.rst @@ -0,0 +1,28 @@ +.. _faq_getting_help: + +============ +Getting Help +============ + +Where can I report bugs or request features? +-------------------------------------------- + +Open an issue on `GitHub `_. + + +Where can I get help? +--------------------- + +- Check the :ref:`examples` for code samples +- Read the :ref:`user_guide` for detailed explanations +- Join the `Discord `_ community +- Search or ask on `GitHub Discussions `_ + + +Where is the documentation for older versions? +---------------------------------------------- + +Documentation for Hyperactive v4 is available at: +`Legacy Documentation (v4) `_ + +If you're migrating from v4 to v5, see the :ref:`user_guide_migration`. diff --git a/docs/source/faq/getting_started.rst b/docs/source/faq/getting_started.rst new file mode 100644 index 00000000..fbb3f01d --- /dev/null +++ b/docs/source/faq/getting_started.rst @@ -0,0 +1,53 @@ +.. _faq_getting_started: + +=============== +Getting Started +=============== + +Which optimizer should I use? +----------------------------- + +For most problems, start with one of these recommendations: + +**Small search spaces (<100 combinations)** + Use :class:`~hyperactive.opt.gfo.GridSearch` to exhaustively evaluate all options. + +**General-purpose optimization** + :class:`~hyperactive.opt.gfo.BayesianOptimizer` works well for expensive + objective functions where you want to minimize evaluations. + +**Fast, simple problems** + :class:`~hyperactive.opt.gfo.HillClimbing` or + :class:`~hyperactive.opt.gfo.RandomSearch` are good starting points. + +**High-dimensional spaces** + Population-based methods like :class:`~hyperactive.opt.gfo.ParticleSwarmOptimizer` + or :class:`~hyperactive.opt.gfo.EvolutionStrategyOptimizer` handle many + parameters well. + +See :ref:`user_guide_optimizers` for detailed guidance on choosing optimizers. + + +How many iterations do I need? +------------------------------ + +This depends on your search space size and objective function: + +- **Rule of thumb**: Start with ``n_iter = 10 * number_of_parameters`` +- **Expensive functions**: Use fewer iterations with Bayesian optimization +- **Fast functions**: Use more iterations with simpler optimizers + +You can monitor progress and stop early if the score plateaus. + + +Does Hyperactive minimize or maximize? +-------------------------------------- + +**Hyperactive maximizes** the objective function. If you want to minimize, +return the negative of your metric: + +.. code-block:: python + + def objective(params): + error = compute_error(params) + return -error # Negate to minimize diff --git a/docs/source/faq/integrations.rst b/docs/source/faq/integrations.rst new file mode 100644 index 00000000..c6d693b6 --- /dev/null +++ b/docs/source/faq/integrations.rst @@ -0,0 +1,64 @@ +.. _faq_integrations: + +============ +Integrations +============ + +Can I use Hyperactive with PyTorch (not Lightning)? +--------------------------------------------------- + +Yes, create a custom objective function: + +.. code-block:: python + + import torch + + def objective(params): + model = MyPyTorchModel( + hidden_size=params["hidden_size"], + dropout=params["dropout"], + ) + # Train and evaluate your model + train_model(model, train_loader) + accuracy = evaluate_model(model, val_loader) + return accuracy + + +How does Hyperactive compare to Optuna? +--------------------------------------- + +**Hyperactive with native GFO backend**: + +- Simple, unified API +- Wide variety of optimization algorithms +- Great for hyperparameter tuning + +**Hyperactive with Optuna backend**: + +- Access Optuna's algorithms through Hyperactive's interface +- Combine the strengths of both libraries + +**Pure Optuna**: + +- More features (pruning, distributed, database storage) +- Larger community and ecosystem +- More configuration options + +Choose based on your needs: Hyperactive for simplicity, Optuna for +advanced features. + + +Can I use Hyperactive with other ML frameworks? +----------------------------------------------- + +Yes, any framework works with custom objective functions: + +.. code-block:: python + + # XGBoost example + import xgboost as xgb + + def objective(params): + model = xgb.XGBClassifier(**params) + scores = cross_val_score(model, X, y, cv=3) + return scores.mean() diff --git a/docs/source/faq/search_space.rst b/docs/source/faq/search_space.rst new file mode 100644 index 00000000..eefccc36 --- /dev/null +++ b/docs/source/faq/search_space.rst @@ -0,0 +1,49 @@ +.. _faq_search_space: + +====================== +Search Space Questions +====================== + +How do I define a continuous search space? +------------------------------------------ + +Use NumPy to create arrays of values: + +.. code-block:: python + + import numpy as np + + search_space = { + "learning_rate": np.logspace(-4, -1, 50), # 0.0001 to 0.1 + "momentum": np.linspace(0.5, 0.99, 50), # 0.5 to 0.99 + } + +Hyperactive samples from these arrays, so finer granularity gives +more precision at the cost of a larger search space. + + +Can I mix discrete and continuous parameters? +--------------------------------------------- + +Yes, mix freely: + +.. code-block:: python + + search_space = { + "n_estimators": [10, 50, 100, 200], # Discrete + "max_depth": list(range(3, 20)), # Discrete range + "learning_rate": np.linspace(0.01, 0.3, 30), # Continuous + "algorithm": ["SAMME", "SAMME.R"], # Categorical + } + + +How do I include None as a parameter value? +------------------------------------------- + +Include ``None`` directly in your list: + +.. code-block:: python + + search_space = { + "max_depth": [None, 3, 5, 10, 20], + } diff --git a/docs/source/get_involved.rst b/docs/source/get_involved.rst new file mode 100644 index 00000000..a7ada9ac --- /dev/null +++ b/docs/source/get_involved.rst @@ -0,0 +1,123 @@ +.. _get_involved: + +============ +Get Involved +============ + +Hyperactive is an open-source project and we welcome contributions from the community! +There are many ways to get involved, whether you're a developer, researcher, or user. + +.. toctree:: + :maxdepth: 1 + + get_involved/contributing + get_involved/code_of_conduct + + +Ways to Contribute +------------------ + +Report Bugs +^^^^^^^^^^^ + +Found a bug? Please report it on GitHub: + +1. Search `existing issues `_ + to see if it's already reported. +2. If not, `open a new issue `_ + with: + + - A clear description of the problem + - Steps to reproduce the issue + - Expected vs actual behavior + - Your Python version and Hyperactive version + - Minimal code example that reproduces the issue + +Suggest Features +^^^^^^^^^^^^^^^^ + +Have an idea for a new feature or improvement? + +1. Open a `GitHub Discussion `_ + to discuss your idea with the community. +2. If there's consensus, create an issue or pull request. + +Contribute Code +^^^^^^^^^^^^^^^ + +Ready to contribute code? See the :ref:`contributing` guide for: + +- Setting up your development environment +- Coding standards and style guide +- How to submit pull requests +- Testing requirements + +Improve Documentation +^^^^^^^^^^^^^^^^^^^^^ + +Documentation improvements are always welcome: + +- Fix typos or unclear explanations +- Add examples and tutorials +- Improve API documentation +- Translate documentation + +Share Your Work +^^^^^^^^^^^^^^^ + +Using Hyperactive in your project? Share your experience: + +- Write a blog post or tutorial +- Present at a meetup or conference +- Share on social media +- Add your project to the examples + + +Community +--------- + +Connect with the Hyperactive community: + +Discord +^^^^^^^ + +Join our `Discord server `_ for: + +- Real-time discussions +- Questions and answers +- Announcements + +GitHub Discussions +^^^^^^^^^^^^^^^^^^ + +Use `GitHub Discussions `_ for: + +- Feature proposals +- Best practices +- Show and tell + +LinkedIn +^^^^^^^^ + +Follow the `German Center for Open Source AI `_ +for news and updates. + + +Support +------- + +Getting Help +^^^^^^^^^^^^ + +If you need help: + +1. Check the :ref:`user_guide` and :ref:`api_reference` +2. Search `existing issues `_ +3. Ask on `Discord `_ +4. Open a new issue with the "question" label + +Star the Project +^^^^^^^^^^^^^^^^ + +If you find Hyperactive useful, please `star it on GitHub `_! +Stars help increase visibility and attract more contributors. diff --git a/docs/source/get_involved/code_of_conduct.rst b/docs/source/get_involved/code_of_conduct.rst new file mode 100644 index 00000000..ce13223e --- /dev/null +++ b/docs/source/get_involved/code_of_conduct.rst @@ -0,0 +1,114 @@ +.. _code_of_conduct: + +=============== +Code of Conduct +=============== + +Hyperactive is committed to providing a welcoming and inclusive environment for everyone. +This Code of Conduct outlines our expectations for participant behavior and the +consequences for unacceptable behavior. + + +Our Pledge +---------- + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + + +Community Guidelines +-------------------- + +Expected Behavior +^^^^^^^^^^^^^^^^^ + +We expect all community members to: + +- **Be respectful**: Treat everyone with respect and consideration. +- **Be constructive**: Provide helpful feedback and suggestions. +- **Be inclusive**: Welcome newcomers and help them get started. +- **Be collaborative**: Work together toward common goals. +- **Be patient**: Remember that people have different skill levels and backgrounds. +- **Be professional**: Keep discussions focused on the project. + + +Unacceptable Behavior +^^^^^^^^^^^^^^^^^^^^^ + +The following behaviors are not acceptable: + +- Harassment, intimidation, or discrimination of any kind +- Offensive comments related to personal characteristics +- Sexual language or imagery in any community space +- Personal attacks or insults +- Trolling or deliberately inflammatory comments +- Publishing others' private information without permission +- Other conduct that could reasonably be considered inappropriate + + +Enforcement +----------- + +Reporting Issues +^^^^^^^^^^^^^^^^ + +If you experience or witness unacceptable behavior, please report it by: + +- **Email**: Contact Simon Blanke at simon.blanke@yahoo.com +- **GitHub**: Open a private issue or contact maintainers directly + +All complaints will be reviewed and investigated promptly and fairly. + + +Consequences +^^^^^^^^^^^^ + +Community leaders will determine appropriate action for violations, which may include: + +1. **Correction**: A private, written warning with clarity about the nature of + the violation and an explanation of why the behavior was inappropriate. + +2. **Warning**: A warning with consequences for continued behavior. No interaction + with the people involved for a specified period of time. + +3. **Temporary Ban**: A temporary ban from any sort of interaction or public + communication with the community for a specified period of time. + +4. **Permanent Ban**: A permanent ban from any sort of public interaction within + the community. + + +Scope +----- + +This Code of Conduct applies within all community spaces, including: + +- GitHub repositories (issues, pull requests, discussions) +- Discord server +- Social media interactions +- In-person events + +It also applies when an individual is officially representing the community +in public spaces. + + +Attribution +----------- + +This Code of Conduct is adapted from the +`Contributor Covenant `_, version 2.0. + + +Questions +--------- + +If you have questions about this Code of Conduct, please contact: + +- **Email**: simon.blanke@yahoo.com +- **GitHub**: `Open a discussion `_ diff --git a/docs/source/get_involved/contributing.rst b/docs/source/get_involved/contributing.rst new file mode 100644 index 00000000..f8282f1c --- /dev/null +++ b/docs/source/get_involved/contributing.rst @@ -0,0 +1,250 @@ +.. _contributing: + +============ +Contributing +============ + +Thank you for your interest in contributing to Hyperactive! This guide will help +you get started with development and submit your contributions. + + +How to Contribute +----------------- + +Contribution Workflow +^^^^^^^^^^^^^^^^^^^^^ + +1. **Fork the repository** on GitHub +2. **Clone your fork** locally +3. **Create a branch** for your changes +4. **Make your changes** with tests +5. **Run the test suite** to ensure everything works +6. **Submit a pull request** for review + + +Types of Contributions +^^^^^^^^^^^^^^^^^^^^^^ + +We welcome many types of contributions: + +- **Bug fixes**: Fix issues and improve stability +- **New features**: Add new optimizers, experiments, or integrations +- **Documentation**: Improve guides, examples, and API docs +- **Tests**: Increase test coverage +- **Performance**: Optimize code for speed or memory + + +Development Setup +----------------- + +Prerequisites +^^^^^^^^^^^^^ + +- Python 3.10 or higher +- Git +- pip + +Setting Up Your Environment +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +1. Fork and clone the repository: + + .. code-block:: bash + + git clone https://github.com/YOUR-USERNAME/Hyperactive.git + cd Hyperactive + +2. Create a virtual environment: + + .. code-block:: bash + + python -m venv venv + source venv/bin/activate # On Windows: venv\Scripts\activate + +3. Install in development mode with test dependencies: + + .. code-block:: bash + + pip install -e ".[test,docs]" + +4. Verify the installation: + + .. code-block:: bash + + python -c "import hyperactive; print(hyperactive.__version__)" + + +Running Tests +^^^^^^^^^^^^^ + +Run the test suite to ensure everything works: + +.. code-block:: bash + + # Run all tests + pytest + + # Run with coverage report + pytest --cov=hyperactive + + # Run specific test file + pytest tests/test_specific.py + + # Run tests matching a pattern + pytest -k "test_hill_climbing" + + +Code Style +---------- + +Formatting +^^^^^^^^^^ + +Hyperactive uses `Black `_ for code formatting +and `Ruff `_ for linting: + +.. code-block:: bash + + # Format code + black src/hyperactive tests + + # Check linting + ruff check src/hyperactive tests + + # Auto-fix linting issues + ruff check --fix src/hyperactive tests + + +Docstrings +^^^^^^^^^^ + +Use NumPy-style docstrings for all public functions and classes: + +.. code-block:: python + + def my_function(param1, param2): + """Short description of the function. + + Longer description if needed. + + Parameters + ---------- + param1 : type + Description of param1. + param2 : type + Description of param2. + + Returns + ------- + type + Description of return value. + + Examples + -------- + >>> my_function(1, 2) + 3 + """ + return param1 + param2 + + +Type Hints +^^^^^^^^^^ + +Add type hints to function signatures: + +.. code-block:: python + + def optimize( + self, + search_space: dict, + n_iter: int, + experiment: Callable, + ) -> dict: + ... + + +Submitting Changes +------------------ + +Creating a Pull Request +^^^^^^^^^^^^^^^^^^^^^^^ + +1. **Create a branch** for your changes: + + .. code-block:: bash + + git checkout -b feature/my-new-feature + +2. **Make your changes** and commit: + + .. code-block:: bash + + git add . + git commit -m "Add my new feature" + +3. **Push to your fork**: + + .. code-block:: bash + + git push origin feature/my-new-feature + +4. **Open a pull request** on GitHub from your branch to the main repository. + + +Pull Request Guidelines +^^^^^^^^^^^^^^^^^^^^^^^ + +- **Clear title**: Describe what the PR does +- **Description**: Explain the changes and motivation +- **Tests**: Include tests for new functionality +- **Documentation**: Update docs if needed +- **Small scope**: Keep PRs focused on one thing + + +Commit Messages +^^^^^^^^^^^^^^^ + +Write clear, descriptive commit messages: + +.. code-block:: text + + Add Bayesian optimizer warm start support + + - Add warm_start parameter to BayesianOptimizer + - Update documentation with usage examples + - Add tests for warm start functionality + + +Review Process +-------------- + +What to Expect +^^^^^^^^^^^^^^ + +1. **Automated checks**: CI will run tests and linting +2. **Code review**: Maintainers will review your code +3. **Feedback**: You may be asked to make changes +4. **Merge**: Once approved, your PR will be merged + + +Response Time +^^^^^^^^^^^^^ + +Maintainers are volunteers, so response times may vary. We aim to: + +- Acknowledge PRs within a few days +- Provide initial review within a week +- Merge approved PRs promptly + + +Getting Help +------------ + +If you need help: + +- Check existing `issues `_ + and `discussions `_ +- Ask on `Discord `_ +- Tag @SimonBlanke in your PR for attention + +Thank you for contributing to Hyperactive! diff --git a/docs/source/get_started.rst b/docs/source/get_started.rst new file mode 100644 index 00000000..1bb1ac1f --- /dev/null +++ b/docs/source/get_started.rst @@ -0,0 +1,111 @@ +.. _get_started: + +=========== +Get Started +=========== + +This guide will help you get up and running with Hyperactive in just a few minutes. +By the end, you'll understand the core concepts and be able to run your first optimization. + +Quick Start +----------- + +Hyperactive makes hyperparameter optimization simple. Here's a complete example +that optimizes a custom function: + +.. literalinclude:: _snippets/getting_started/quick_start.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + +That's it! Let's break down what happened: + +1. **Objective function**: A callable that takes a dictionary of parameters and returns a score. + Hyperactive **maximizes** this score by default. + +2. **Search space**: A dictionary mapping parameter names to their possible values. + Use NumPy arrays or lists to define discrete search spaces. + +3. **Optimizer**: Choose from 20+ optimization algorithms. Each optimizer explores the + search space differently to find optimal parameters. + + +First Steps +----------- + +Optimizing a Scikit-learn Model +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The most common use case is tuning machine learning models. Here's how to optimize +a Random Forest classifier: + +.. literalinclude:: _snippets/getting_started/sklearn_random_forest.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + + +Using the Sklearn Integration +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For even simpler sklearn integration, use the ``OptCV`` wrapper that behaves like +scikit-learn's ``GridSearchCV``: + +.. literalinclude:: _snippets/getting_started/sklearn_optcv.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + + +Choosing an Optimizer +^^^^^^^^^^^^^^^^^^^^^ + +Hyperactive provides many optimization algorithms. Here are some common choices: + +.. list-table:: + :header-rows: 1 + :widths: 25 75 + + * - Optimizer + - Best For + * - ``HillClimbing`` + - Quick local optimization, good starting point + * - ``RandomSearch`` + - Exploring large search spaces, baseline comparison + * - ``BayesianOptimizer`` + - Expensive evaluations, smart exploration + * - ``ParticleSwarmOptimizer`` + - Multi-modal problems, avoiding local optima + * - ``GeneticAlgorithm`` + - Complex landscapes, combinatorial problems + +Example with Bayesian Optimization: + +.. literalinclude:: _snippets/getting_started/bayesian_optimizer.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + +.. literalinclude:: _snippets/getting_started/bayesian_optimizer.py + :language: python + :start-after: # [start:optimizer_usage] + :end-before: # [end:optimizer_usage] + + +Next Steps +---------- + +Now that you've seen the basics, explore these topics: + +- :ref:`installation` - Detailed installation instructions +- :ref:`user_guide` - In-depth tutorials and concepts +- :ref:`api_reference` - Complete API documentation +- :ref:`examples` - More code examples + +Key Concepts to Learn +^^^^^^^^^^^^^^^^^^^^^ + +1. **Experiments**: Abstractions that define *what* to optimize (see :ref:`user_guide_experiments`) +2. **Optimizers**: Algorithms that define *how* to optimize (see :ref:`user_guide_optimizers`) +3. **Search Spaces**: Define the parameter ranges to explore +4. **Integrations**: Built-in support for sklearn, sktime, and PyTorch (see :ref:`user_guide_integrations`) diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 00000000..23759cb3 --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,498 @@ +.. _home: + +.. raw:: html + +
+
+

Hyperactive

+

A unified interface for optimization algorithms and experiments

+
+
+ + +
+
+
31
+
Algorithms
+
+
+
3
+
Backends
+
+
+
5
+
Integrations
+
+
+
1
+
Unified API
+
+
+ + +Hyperactive provides a collection of optimization algorithms, accessible through a unified +experiment-based interface that separates optimization problems from algorithms. The library +provides native implementations of algorithms from the Gradient-Free-Optimizers package +alongside direct interfaces to Optuna and scikit-learn optimizers. + +.. raw:: html + +
+ + +---- + +.. _features: + +Features +================ + +What makes Hyperactive stand out for optimization tasks. + +.. grid:: 1 2 3 3 + :gutter: 4 + + .. grid-item-card:: + :class-card: feature-card + + **20+ Optimization Algorithms** + ^^^ + From Hill Climbing to Bayesian Optimization, + Particle Swarm, Genetic Algorithms, and more. + + +++ + :doc:`Local, global, population-based, and sequential methods ` + + .. grid-item-card:: + :class-card: feature-card + + **Direct ML Integration** + ^^^ + First-class support for scikit-learn, sktime, skpro, and PyTorch. + Tune models with minimal code changes. + + +++ + :doc:`Works with any estimator implementing fit/score ` + + .. grid-item-card:: + :class-card: feature-card + + **Experiment Abstraction** + ^^^ + Clean separation between *what* to optimize (experiments) and + *how* to optimize (algorithms). + + +++ + :doc:`Swap algorithms without changing experiment code ` + + .. grid-item-card:: + :class-card: feature-card + + **3 Optimizer Backends** + ^^^ + Native GFO algorithms, Optuna samplers, and scikit-learn + search methods through one unified API. + + +++ + :doc:`GFO · Optuna · sklearn ` + + .. grid-item-card:: + :class-card: feature-card + + **Mixed Parameter Spaces** + ^^^ + Categorical, integer, and continuous parameters. + Define search spaces with NumPy arrays or lists. + + +++ + :doc:`Optuna backend supports native continuous ranges ` + + .. grid-item-card:: + :class-card: feature-card + + **Stable Since 2019** + ^^^ + 5+ years of development, comprehensive test coverage, + and active maintenance. + + +++ + :doc:`Type-annotated · Documented · Tested ` + +---- + +Optimization Backends +================== + +Hyperactive provides a unified interface to three powerful optimization backends. +Choose the one that best fits your needs, or switch between them effortlessly. + +.. grid:: 1 1 3 3 + :gutter: 4 + + .. grid-item-card:: + :class-card: backend-card backend-card-gfo + + `Gradient-Free-Optimizers `__ + ^^^ + The native backend with 20 optimization algorithms implemented from scratch. + Ideal for custom objective functions and research applications. + + - Hill Climbing variants + - Simulated Annealing + - Particle Swarm & Genetic Algorithms + - Bayesian Optimization + - And 15+ more algorithms + + +++ + :doc:`Explore GFO algorithms ` + + .. grid-item-card:: + :class-card: backend-card backend-card-optuna + + `Optuna `__ + ^^^ + Industry-standard hyperparameter optimization framework with + state-of-the-art samplers and pruning strategies. + + - Tree-Parzen Estimator (TPE) + - CMA-ES for continuous spaces + - Gaussian Process optimization + - Multi-objective (NSGA-II/III) + - Native continuous parameter support + + +++ + :doc:`Explore Optuna samplers ` + + .. grid-item-card:: + :class-card: backend-card backend-card-sklearn + + `scikit-learn `__ + ^^^ + Familiar scikit-learn search interfaces with enhanced integration + for cross-validation experiments. + + - GridSearchCV + - RandomizedSearchCV + - HalvingGridSearchCV + - HalvingRandomSearchCV + - Drop-in sklearn compatibility + + +++ + :doc:`Explore sklearn integration ` + +---- + +Integrations +============ + +Hyperactive works seamlessly with popular machine learning frameworks. + +.. raw:: html + + + +---- + +Quick Install +============= + +.. raw:: html + +
+ +
+
+
$ pip install hyperactive
+
+
+
$ pip install hyperactive[all_extras]
+
+
+
$ pip install hyperactive[sklearn-integration]
+
+
+
$ pip install hyperactive[sktime-integration]
+
+
+
+ +---- + +Quick Example +============= + +Get started in just a few lines of code: + +.. raw:: html + +
+ +
+
+ +.. literalinclude:: _snippets/getting_started/index_custom_function.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + +.. raw:: html + +
+
+ +.. literalinclude:: _snippets/getting_started/index_sklearn_tuning.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + +.. raw:: html + +
+
+ +.. literalinclude:: _snippets/getting_started/index_bayesian.py + :language: python + :start-after: # [start:full_example] + :end-before: # [end:full_example] + +.. raw:: html + +
+
+
+ + + +---- + +Contents +======== + +.. toctree:: + :maxdepth: 1 + :hidden: + + get_started + installation + user_guide + api_reference + examples + faq + troubleshooting + get_involved + about + +.. raw:: html + + diff --git a/docs/source/installation.rst b/docs/source/installation.rst new file mode 100644 index 00000000..75554816 --- /dev/null +++ b/docs/source/installation.rst @@ -0,0 +1,205 @@ +.. _installation: + +============ +Installation +============ + +Hyperactive can be installed via pip and supports Python |python_version_range|. + +Installing Hyperactive +---------------------- + +Basic Installation +^^^^^^^^^^^^^^^^^^ + +Install Hyperactive from PyPI using pip: + +.. code-block:: bash + + pip install hyperactive + +This installs Hyperactive with its core dependencies, which is sufficient for most use cases +including scikit-learn integration. + + +Installation with Extras +^^^^^^^^^^^^^^^^^^^^^^^^ + +For additional functionality, you can install optional extras: + +.. code-block:: bash + + # Full installation with all extras (Optuna, PyTorch Lightning, etc.) + pip install hyperactive[all_extras] + + # Scikit-learn integration (included by default) + pip install hyperactive[sklearn-integration] + + # Sktime/skpro integration for time series + pip install hyperactive[sktime-integration] + + +Development Installation +^^^^^^^^^^^^^^^^^^^^^^^^ + +To install Hyperactive for development (from source): + +.. code-block:: bash + + # Clone the repository + git clone https://github.com/SimonBlanke/Hyperactive.git + cd Hyperactive + + # Install in development mode with test dependencies + pip install -e ".[test]" + + # Or install with all development dependencies + pip install -e ".[test,docs]" + + +Dependencies +------------ + +Core Dependencies +^^^^^^^^^^^^^^^^^ + +Hyperactive requires the following packages (automatically installed): + +.. list-table:: + :header-rows: 1 + :widths: 30 70 + + * - Package + - Purpose + * - ``numpy >= 1.18.1`` + - Numerical operations and array handling + * - ``pandas < 3.0.0`` + - Data manipulation and results handling + * - ``tqdm >= 4.48.0`` + - Progress bars during optimization + * - ``gradient-free-optimizers >= 1.2.4`` + - Core optimization algorithms + * - ``scikit-base < 1.0.0`` + - Base classes for sklearn-like interfaces + * - ``scikit-learn < 1.8.0`` + - Machine learning integration + + +Optional Dependencies +--------------------- + +Depending on your use case, you may want to install additional packages: + +Optuna Backend +^^^^^^^^^^^^^^ + +For Optuna-based optimizers (TPE, CMA-ES, NSGA-II, etc.): + +.. code-block:: bash + + pip install optuna + +Or include it via the ``all_extras`` option: + +.. code-block:: bash + + pip install hyperactive[all_extras] + + +Time Series (sktime/skpro) +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For time series forecasting and probabilistic prediction: + +.. code-block:: bash + + pip install hyperactive[sktime-integration] + +This installs ``sktime`` and ``skpro`` for time series optimization experiments. + +.. note:: + + Sktime integration requires Python < 3.14 due to sktime's current compatibility. + + +PyTorch Lightning +^^^^^^^^^^^^^^^^^ + +For deep learning hyperparameter optimization: + +.. code-block:: bash + + pip install hyperactive[all_extras] + # or + pip install lightning + +.. note:: + + PyTorch/Lightning requires Python < 3.14 for full compatibility. + + +Verifying Installation +---------------------- + +After installation, verify that Hyperactive is working correctly: + +.. literalinclude:: _snippets/installation/verify_installation.py + :language: python + :start-after: # [start:verify_installation] + :end-before: # [end:verify_installation] + + +Python Version Support +---------------------- + +Hyperactive officially supports Python |python_versions_list|. + +.. note:: + + The supported Python versions are automatically extracted from the project's + ``pyproject.toml`` classifiers. + + Some optional integrations (sktime, PyTorch) may have more restrictive + Python version requirements. Check the specific package documentation + for details. + + +Troubleshooting +--------------- + +Common Installation Issues +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +**ImportError: No module named 'gradient_free_optimizers'** + +This usually means the installation was incomplete. Try: + +.. code-block:: bash + + pip install --upgrade hyperactive + +**MemoryError during optimization** + +Sequential model-based optimizers (Bayesian, TPE) can use significant memory +for large search spaces. Reduce your search space size or use a simpler optimizer +like ``RandomSearch`` or ``HillClimbing``. + +**Pickle errors with multiprocessing** + +Ensure all objects in your search space are serializable (no lambdas, closures, +or bound methods). Use top-level functions and basic Python types. + +For more help, see the `GitHub Issues `_. + + +Using Older Versions +-------------------- + +If you need to use Hyperactive v4, you can install a specific version: + +.. code-block:: bash + + pip install hyperactive==4.8.0 + +Documentation for v4 is available at: +`Legacy Documentation (v4) `_ diff --git a/docs/source/troubleshooting.rst b/docs/source/troubleshooting.rst new file mode 100644 index 00000000..e265a0af --- /dev/null +++ b/docs/source/troubleshooting.rst @@ -0,0 +1,39 @@ +.. _troubleshooting_guide: + +=============== +Troubleshooting +=============== + +This guide helps you diagnose and fix common issues with Hyperactive. + +.. toctree:: + :maxdepth: 1 + + troubleshooting/installation + troubleshooting/runtime_errors + troubleshooting/performance + troubleshooting/results + troubleshooting/experiments + troubleshooting/getting_help + + +Overview +-------- + +:ref:`troubleshooting_installation` + Import errors, missing modules, and dependency issues. + +:ref:`troubleshooting_runtime` + AttributeError, TypeError, and ValueError during execution. + +:ref:`troubleshooting_performance` + Slow optimization and memory errors. + +:ref:`troubleshooting_results` + Inconsistent results, local optima, and unexpected scores. + +:ref:`troubleshooting_experiments` + Issues with sklearn, PyTorch Lightning, and other integrations. + +:ref:`troubleshooting_help` + Where to get additional support. diff --git a/docs/source/troubleshooting/experiments.rst b/docs/source/troubleshooting/experiments.rst new file mode 100644 index 00000000..0dd60150 --- /dev/null +++ b/docs/source/troubleshooting/experiments.rst @@ -0,0 +1,53 @@ +.. _troubleshooting_experiments: + +=========================== +Experiment-Specific Issues +=========================== + +SklearnCvExperiment Not Finding Best Parameters +------------------------------------------------ + +**Cause**: Search space doesn't include good values or not enough iterations. + +**Solutions**: + +1. Verify search space includes reasonable values: + + .. code-block:: python + + # Make sure these are sensible for your model + search_space = { + "n_estimators": [10, 50, 100, 200, 500], + "max_depth": [None, 3, 5, 10, 20], + } + +2. Increase iterations or use smarter optimizer: + + .. code-block:: python + + optimizer = BayesianOptimizer( + search_space=space, + n_iter=200, # More iterations + experiment=experiment, + ) + + +PyTorch Lightning Metric Not Found +---------------------------------- + +**Cause**: The metric name doesn't match what's logged during training. + +**Solution**: Check your Lightning module logs the correct metric: + +.. code-block:: python + + class MyModel(L.LightningModule): + def validation_step(self, batch, batch_idx): + loss = self.compute_loss(batch) + self.log("val_loss", loss) # Must match objective_metric + + experiment = TorchLightningExperiment( + lightning_module=MyModel, + objective_metric="val_loss", # Must match self.log name + ... + ) diff --git a/docs/source/troubleshooting/getting_help.rst b/docs/source/troubleshooting/getting_help.rst new file mode 100644 index 00000000..c594961a --- /dev/null +++ b/docs/source/troubleshooting/getting_help.rst @@ -0,0 +1,20 @@ +.. _troubleshooting_help: + +================ +Getting More Help +================ + +If your issue isn't covered in this troubleshooting guide: + +1. **Check the FAQ** — See :ref:`faq` for common questions + +2. **Search existing issues** — Browse `GitHub Issues `_ + +3. **Open a new issue** — Include: + + - Your code (minimal reproducible example) + - Full error traceback + - Hyperactive version (``hyperactive.__version__``) + - Python version + +4. **Join the community** — Ask on `Discord `_ diff --git a/docs/source/troubleshooting/installation.rst b/docs/source/troubleshooting/installation.rst new file mode 100644 index 00000000..ced1c9d8 --- /dev/null +++ b/docs/source/troubleshooting/installation.rst @@ -0,0 +1,61 @@ +.. _troubleshooting_installation: + +=================== +Installation Issues +=================== + +ImportError: No module named 'hyperactive' +------------------------------------------ + +**Cause**: Hyperactive is not installed or installed in a different environment. + +**Solution**: + +.. code-block:: bash + + pip install hyperactive + + # Or with extras + pip install hyperactive[all_extras] + +Verify installation: + +.. code-block:: bash + + python -c "import hyperactive; print(hyperactive.__version__)" + + +ImportError: cannot import name 'Hyperactive' +--------------------------------------------- + +**Cause**: You're using v4 code with Hyperactive v5. The ``Hyperactive`` class +was removed in v5. + +**Solution**: Update your imports. See :ref:`user_guide_migration` for details. + +.. code-block:: python + + # Old (v4) + from hyperactive import Hyperactive + + # New (v5) + from hyperactive.opt.gfo import HillClimbing + + +Missing Optional Dependencies +----------------------------- + +**Cause**: Some features require additional packages. + +**Solution**: Install the appropriate extras: + +.. code-block:: bash + + # For scikit-learn integration + pip install hyperactive[sklearn-integration] + + # For Optuna backend + pip install hyperactive[optuna] + + # For all extras + pip install hyperactive[all_extras] diff --git a/docs/source/troubleshooting/performance.rst b/docs/source/troubleshooting/performance.rst new file mode 100644 index 00000000..84298d0a --- /dev/null +++ b/docs/source/troubleshooting/performance.rst @@ -0,0 +1,69 @@ +.. _troubleshooting_performance: + +================== +Performance Issues +================== + +Optimization is Very Slow +------------------------- + +**Possible causes and solutions**: + +1. **Slow objective function** + + The optimizer can only be as fast as your objective. Consider: + + - Reducing cross-validation folds (``cv=3`` instead of ``cv=10``) + - Using a subset of data during tuning + - Using a simpler model for initial exploration + +2. **Too many iterations** + + Start with fewer iterations: + + .. code-block:: python + + optimizer = HillClimbing( + search_space=space, + n_iter=50, # Start small + experiment=objective, + ) + +3. **Overly large search space** + + Reduce granularity or the number of parameters: + + .. code-block:: python + + # Instead of 1000 values + "learning_rate": np.linspace(0.001, 0.1, 1000) + + # Use 20-50 values + "learning_rate": np.logspace(-3, -1, 20) + + +Memory Errors +------------- + +**Cause**: Very large search spaces can cause memory issues with some optimizers, +especially those that cache all combinations. + +**Solution**: + +1. Reduce search space size +2. Use sampling-based optimizers (``RandomSearch``, ``BayesianOptimizer``) +3. Use coarser parameter granularity + +.. code-block:: python + + # High memory usage + search_space = { + "a": np.linspace(0, 1, 10000), + "b": np.linspace(0, 1, 10000), + } # 100 million combinations! + + # Lower memory usage + search_space = { + "a": np.linspace(0, 1, 100), + "b": np.linspace(0, 1, 100), + } # 10,000 combinations diff --git a/docs/source/troubleshooting/results.rst b/docs/source/troubleshooting/results.rst new file mode 100644 index 00000000..bb6ef9d8 --- /dev/null +++ b/docs/source/troubleshooting/results.rst @@ -0,0 +1,78 @@ +.. _troubleshooting_results: + +==================== +Optimization Results +==================== + +Results Vary Between Runs +------------------------- + +**Cause**: Optimization algorithms are stochastic. + +**Solution**: Set a random seed for reproducibility: + +.. code-block:: python + + optimizer = HillClimbing( + search_space=space, + n_iter=100, + experiment=objective, + random_state=42, + ) + + +Optimizer Gets Stuck in Local Optima +------------------------------------ + +**Cause**: Local search algorithms (like HillClimbing) can get trapped. + +**Solutions**: + +1. Use a global search algorithm: + + .. code-block:: python + + from hyperactive.opt.gfo import RandomSearch, BayesianOptimizer + +2. Use population-based methods: + + .. code-block:: python + + from hyperactive.opt.gfo import ParticleSwarmOptimizer, GeneticAlgorithm + +3. Increase exploration in local search: + + .. code-block:: python + + optimizer = HillClimbing( + search_space=space, + n_iter=100, + experiment=objective, + epsilon=0.2, # Larger steps + ) + + +Best Score is Very Low or Negative +---------------------------------- + +**Check these**: + +1. **Objective function errors** — Make sure your objective doesn't crash: + + .. code-block:: python + + def objective(params): + try: + score = evaluate(params) + return score + except Exception as e: + print(f"Error: {e}") # Debug + return -np.inf + +2. **Sign convention** — Hyperactive maximizes. Negate if minimizing: + + .. code-block:: python + + def objective(params): + error = compute_error(params) + return -error # Negate for minimization diff --git a/docs/source/troubleshooting/runtime_errors.rst b/docs/source/troubleshooting/runtime_errors.rst new file mode 100644 index 00000000..a0b29a05 --- /dev/null +++ b/docs/source/troubleshooting/runtime_errors.rst @@ -0,0 +1,60 @@ +.. _troubleshooting_runtime: + +============== +Runtime Errors +============== + +AttributeError: 'X' object has no attribute 'run' +------------------------------------------------- + +**Cause**: Using v4 method names with v5 optimizers. + +**Solution**: Use ``.solve()`` instead of ``.run()``: + +.. code-block:: python + + # Old (v4) + hyper.run() + + # New (v5) + best_params = optimizer.solve() + + +TypeError: unexpected keyword argument +-------------------------------------- + +**Cause**: Parameter passing changed in v5. All configuration now goes +to the optimizer constructor. + +**Solution**: + +.. code-block:: python + + # Old (v4) + hyper.add_search(model, space, optimizer=opt, n_iter=100) + + # New (v5) + optimizer = HillClimbing( + search_space=space, + n_iter=100, + experiment=objective, + ) + + +ValueError: Parameters do not match +----------------------------------- + +**Cause**: Your search space keys don't match what the experiment expects. + +**Solution**: Ensure search space keys match the parameters your objective +function or experiment expects: + +.. code-block:: python + + # Search space defines "learning_rate" + search_space = {"learning_rate": [0.01, 0.1]} + + # Objective must use the same key + def objective(params): + lr = params["learning_rate"] # Not "lr" or "LearningRate" + ... diff --git a/docs/source/user_guide.rst b/docs/source/user_guide.rst new file mode 100644 index 00000000..6d6f7e23 --- /dev/null +++ b/docs/source/user_guide.rst @@ -0,0 +1,99 @@ +.. _user_guide: + +========== +User Guide +========== + +This guide covers Hyperactive's core concepts and features in depth. +Whether you're new to hyperparameter optimization or an experienced practitioner, +you'll find detailed explanations and practical examples here. + +.. note:: + + Some code snippets in this guide are **illustrative** and may contain + placeholders (like ``score`` or ``SomeOptimizer``). For complete, runnable + examples, see the :ref:`examples` or :ref:`get_started` sections. + +.. toctree:: + :maxdepth: 1 + + user_guide/introduction + user_guide/search_spaces + user_guide/optimizers + user_guide/experiments + user_guide/integrations + user_guide/migration + + +Overview +-------- + +Hyperactive v5 introduces a clean **experiment-based architecture** that separates +optimization algorithms from optimization problems: + +- **Experiments** define *what* to optimize — the objective function and evaluation logic +- **Optimizers** define *how* to optimize — the search strategy and algorithm + +This design allows you to: + +- Mix and match any optimizer with any experiment type +- Create reusable experiment definitions for common ML tasks +- Easily switch between different optimization strategies +- Build complex optimization workflows with consistent interfaces + +Basic Workflow +^^^^^^^^^^^^^^ + +Every Hyperactive optimization follows this pattern: + +.. code-block:: python + + from hyperactive.opt.gfo import HillClimbing + + # 1. Define the experiment (what to optimize) + def objective(params): + return score # Hyperactive maximizes this + + # 2. Define the search space + search_space = { + "param1": [value1, value2, ...], + "param2": [value1, value2, ...], + } + + # 3. Choose an optimizer (how to optimize) + optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, + ) + + # 4. Run the optimization + best_params = optimizer.solve() + + +Guide Contents +-------------- + +:ref:`user_guide_introduction` + Core concepts: optimizers, experiments, and search spaces. + Start here to understand Hyperactive's architecture. + +:ref:`user_guide_search_spaces` + Best practices for designing search spaces. + Covers scaling, granularity, and common patterns. + +:ref:`user_guide_optimizers` + Detailed guide to choosing and configuring optimizers. + Covers local search, global search, population methods, and Bayesian approaches. + +:ref:`user_guide_experiments` + How to define optimization problems using experiments. + Includes custom functions and built-in ML experiments. + +:ref:`user_guide_integrations` + Framework integrations for scikit-learn, sktime, skpro, and PyTorch. + Drop-in replacements for GridSearchCV and similar tools. + +:ref:`user_guide_migration` + Migration guide for upgrading from Hyperactive v4 to v5. + Covers API changes, new patterns, and troubleshooting. diff --git a/docs/source/user_guide/experiments.rst b/docs/source/user_guide/experiments.rst new file mode 100644 index 00000000..7ee388ef --- /dev/null +++ b/docs/source/user_guide/experiments.rst @@ -0,0 +1,137 @@ +.. _user_guide_experiments: + +=========== +Experiments +=========== + +Experiments define *what* to optimize in Hyperactive. They encapsulate the objective +function and any evaluation logic needed to score a set of parameters. + +Defining Experiments +-------------------- + +There are two ways to define experiments in Hyperactive: + +1. **Custom functions** — Simple callables for any optimization problem +2. **Built-in experiment classes** — Pre-built experiments for common ML tasks + + +Custom Objective Functions +-------------------------- + +The simplest way to define an experiment is as a Python function that takes +a parameter dictionary and returns a score: + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:simple_objective] + :end-before: # [end:simple_objective] + +Key points: + +- The function receives a dictionary with parameter names as keys +- It must return a single numeric value (the score) +- Hyperactive **maximizes** this score by default +- To minimize, negate your loss function (as shown above) + + +Example: Optimizing a Mathematical Function +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:ackley_function] + :end-before: # [end:ackley_function] + + +Example: Optimizing with External Resources +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Your objective function can use any Python code: + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:external_simulation] + :end-before: # [end:external_simulation] + + +Built-in Experiment Classes +--------------------------- + +For common machine learning tasks, Hyperactive provides ready-to-use experiment classes +that handle cross-validation, scoring, and other details. + + +SklearnCvExperiment +^^^^^^^^^^^^^^^^^^^ + +For optimizing scikit-learn estimators with cross-validation: + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:sklearn_cv_experiment] + :end-before: # [end:sklearn_cv_experiment] + + +SktimeForecastingExperiment +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For time series forecasting optimization (requires ``sktime``): + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:sktime_forecasting] + :end-before: # [end:sktime_forecasting] + + +TorchExperiment +^^^^^^^^^^^^^^^ + +For PyTorch Lightning model optimization (requires ``lightning``): + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:torch_experiment] + :end-before: # [end:torch_experiment] + + +Benchmark Experiments +--------------------- + +Hyperactive includes standard benchmark functions for testing optimizers: + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:benchmark_experiments] + :end-before: # [end:benchmark_experiments] + + +Using the score() Method +------------------------ + +Experiments can also be evaluated directly using the ``score()`` method: + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:score_method] + :end-before: # [end:score_method] + + +Tips for Designing Experiments +------------------------------ + +1. **Return meaningful scores**: Ensure your score reflects what you want to optimize. + Higher is better (Hyperactive maximizes). + +2. **Handle errors gracefully**: If a parameter combination fails, return a very + low score (e.g., ``-np.inf``) rather than raising an exception. + +3. **Consider computation time**: For expensive experiments, use efficient optimizers + like ``BayesianOptimizer`` that learn from previous evaluations. + +4. **Use reproducibility**: Set random seeds in your experiment for consistent results. + +.. literalinclude:: ../_snippets/user_guide/experiments.py + :language: python + :start-after: # [start:robust_objective] + :end-before: # [end:robust_objective] diff --git a/docs/source/user_guide/integrations.rst b/docs/source/user_guide/integrations.rst new file mode 100644 index 00000000..d45e5da3 --- /dev/null +++ b/docs/source/user_guide/integrations.rst @@ -0,0 +1,147 @@ +.. _user_guide_integrations: + +====================== +Framework Integrations +====================== + +Hyperactive provides seamless integrations with popular machine learning frameworks. +These integrations offer drop-in replacements for tools like ``GridSearchCV``, +making it easy to use any Hyperactive optimizer with your existing code. + + +Scikit-Learn Integration +------------------------ + +The ``OptCV`` class provides a scikit-learn compatible interface for hyperparameter +tuning. It works like ``GridSearchCV`` but supports any Hyperactive optimizer. + +Basic Usage +^^^^^^^^^^^ + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:optcv_basic] + :end-before: # [end:optcv_basic] + + +Using Different Optimizers +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Any Hyperactive optimizer works with ``OptCV``: + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:different_optimizers] + :end-before: # [end:different_optimizers] + + +Pipeline Integration +^^^^^^^^^^^^^^^^^^^^ + +``OptCV`` works with sklearn pipelines: + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:pipeline_integration] + :end-before: # [end:pipeline_integration] + + +Time Series with Sktime +----------------------- + +Hyperactive integrates with ``sktime`` for time series forecasting optimization. + +.. note:: + + Requires ``pip install hyperactive[sktime-integration]`` + + +Forecasting Optimization +^^^^^^^^^^^^^^^^^^^^^^^^ + +Use ``ForecastingOptCV`` to tune forecasters: + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:forecasting_optcv] + :end-before: # [end:forecasting_optcv] + + +Time Series Classification +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Use ``TSCOptCV`` for time series classification: + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:tsc_optcv] + :end-before: # [end:tsc_optcv] + + +Probabilistic Prediction with Skpro +----------------------------------- + +For probabilistic regression with ``skpro``: + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:skpro_experiment] + :end-before: # [end:skpro_experiment] + + +PyTorch Lightning Integration +----------------------------- + +For deep learning hyperparameter optimization with PyTorch Lightning: + +.. note:: + + Requires ``pip install hyperactive[all_extras]`` or ``pip install lightning`` + +.. literalinclude:: ../_snippets/user_guide/integrations.py + :language: python + :start-after: # [start:pytorch_lightning] + :end-before: # [end:pytorch_lightning] + + +Choosing the Right Integration +------------------------------ + +.. list-table:: + :header-rows: 1 + :widths: 25 25 50 + + * - Framework + - Integration Class + - Use Case + * - scikit-learn + - ``OptCV`` + - Classification, regression, pipelines + * - sktime + - ``ForecastingOptCV`` + - Time series forecasting + * - sktime + - ``TSCOptCV`` + - Time series classification + * - skpro + - ``SkproProbaRegExperiment`` + - Probabilistic regression + * - PyTorch Lightning + - ``TorchExperiment`` + - Deep learning models + + +Tips for Using Integrations +--------------------------- + +1. **Match the interface**: Use ``OptCV`` when you want sklearn-compatible behavior + (fit/predict). Use experiment classes when you want more control. + +2. **Consider evaluation cost**: Deep learning experiments are expensive. + Use efficient optimizers like ``BayesianOptimizer`` with fewer iterations. + +3. **Use appropriate CV strategies**: Match your cross-validation to your problem + (e.g., ``TimeSeriesSplit`` for time series, stratified splits for imbalanced data). + +4. **Start simple**: Begin with ``GridSearch`` or ``RandomSearch`` to establish + baselines before using more sophisticated optimizers. diff --git a/docs/source/user_guide/introduction.rst b/docs/source/user_guide/introduction.rst new file mode 100644 index 00000000..e000942a --- /dev/null +++ b/docs/source/user_guide/introduction.rst @@ -0,0 +1,179 @@ +.. _user_guide_introduction: + +============ +Introduction +============ + +This page introduces Hyperactive's core concepts: optimizers, experiments, and search spaces. +Understanding these concepts will help you use Hyperactive effectively for any optimization task. + + +Core Concepts +------------- + +Hyperactive is built around three key concepts: + +1. **Experiments** — Define *what* to optimize (the objective function) +2. **Optimizers** — Define *how* to optimize (the search algorithm) +3. **Search Spaces** — Define *where* to search (the parameter ranges) + + +Experiments: What to Optimize +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +An **experiment** represents your optimization problem. It takes parameters as input +and returns a score that Hyperactive will maximize. + +The simplest experiment is a Python function: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:simple_objective] + :end-before: # [end:simple_objective] + +For machine learning, Hyperactive provides built-in experiments: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:sklearn_experiment_intro] + :end-before: # [end:sklearn_experiment_intro] + +See :ref:`user_guide_experiments` for more details. + + +Optimizers: How to Optimize +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +An **optimizer** is the algorithm that explores the search space to find the best parameters. +Hyperactive provides 20+ optimizers in different categories: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:optimizer_imports] + :end-before: # [end:optimizer_imports] + +Each optimizer has different characteristics: + +- **Local search** (HillClimbing, SimulatedAnnealing): Fast, may get stuck in local optima +- **Global search** (RandomSearch, GridSearch): Thorough exploration, slower +- **Population methods** (GeneticAlgorithm, ParticleSwarm): Good for complex landscapes +- **Sequential methods** (BayesianOptimizer, TPE): Smart exploration, best for expensive evaluations + +See :ref:`user_guide_optimizers` for a complete guide. + + +Search Spaces: Where to Search +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +A **search space** defines the possible values for each parameter. +Use dictionaries with lists or NumPy arrays: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:search_space_definition] + :end-before: # [end:search_space_definition] + +.. tip:: + + Keep search spaces reasonably sized. Very large spaces (>10^8 combinations) + can cause memory issues with some optimizers. + + +Basic Workflow +-------------- + +Here's the complete workflow for using Hyperactive: + +Step 1: Define Your Experiment +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Either as a function or using built-in experiment classes: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:workflow_experiment_options] + :end-before: # [end:workflow_experiment_options] + + +Step 2: Define the Search Space +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:workflow_search_space] + :end-before: # [end:workflow_search_space] + + +Step 3: Choose an Optimizer +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:workflow_optimizer] + :end-before: # [end:workflow_optimizer] + + +Step 4: Run the Optimization +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:workflow_solve] + :end-before: # [end:workflow_solve] + + +Common Optimizer Parameters +--------------------------- + +Most optimizers share these parameters: + +.. list-table:: + :header-rows: 1 + :widths: 20 15 65 + + * - Parameter + - Type + - Description + * - ``search_space`` + - dict + - Maps parameter names to possible values + * - ``n_iter`` + - int + - Number of optimization iterations + * - ``experiment`` + - callable + - The objective function or experiment object + * - ``random_state`` + - int + - Seed for reproducibility + * - ``initialize`` + - dict + - Control initial population (warm starts, etc.) + + +Warm Starting +^^^^^^^^^^^^^ + +You can provide starting points for optimization: + +.. literalinclude:: ../_snippets/user_guide/introduction.py + :language: python + :start-after: # [start:warm_starting] + :end-before: # [end:warm_starting] + + +Tips for Effective Optimization +------------------------------- + +1. **Start simple**: Begin with ``HillClimbing`` or ``RandomSearch`` to establish baselines. + +2. **Right-size your search space**: Large spaces need more iterations. Consider using + ``np.logspace`` for parameters that span orders of magnitude. + +3. **Use appropriate iterations**: More iterations = better exploration, but longer runtime. + A good rule of thumb: at least 10x the number of parameters. + +4. **Set random_state**: For reproducible results, always set a random seed. + +5. **Consider your budget**: For expensive evaluations (training large models), + use smart optimizers like ``BayesianOptimizer`` that learn from previous evaluations. diff --git a/docs/source/user_guide/migration.rst b/docs/source/user_guide/migration.rst new file mode 100644 index 00000000..6a73c075 --- /dev/null +++ b/docs/source/user_guide/migration.rst @@ -0,0 +1,361 @@ +.. _user_guide_migration: + +====================== +Migration Guide (v4→v5) +====================== + +This guide helps you migrate from Hyperactive v4 to v5. Version 5 introduces +a new experiment-based architecture with a simplified API. + +.. note:: + + If you're still using Hyperactive v4 and need documentation for that version, + see the `Legacy Documentation (v4) `_. + +Quick Summary +------------- + +The main changes in v5 are: + +1. **No more ``Hyperactive`` class** — Optimizers are used directly +2. **``.run()`` replaced with ``.solve()``** — Single method for optimization +3. **New import paths** — ``hyperactive.opt.gfo`` instead of ``hyperactive.optimizers`` +4. **Experiment abstraction** — Built-in ML experiments for scikit-learn, sktime, etc. +5. **Constructor-based configuration** — All parameters passed to optimizer constructor + + +Basic Migration +--------------- + +Here's how to convert a v4 script to v5: + +**v4 (Old)** + +.. code-block:: python + + from hyperactive import Hyperactive + from hyperactive.optimizers import HillClimbingOptimizer + + def model(opt): + # Use opt["param"] to access parameters + score = -(opt["x"] ** 2) + return score + + search_space = { + "x": list(range(-10, 10)), + } + + # Create optimizer separately + optimizer = HillClimbingOptimizer(epsilon=0.1) + + # Create Hyperactive instance and add search + hyper = Hyperactive() + hyper.add_search( + model, + search_space, + optimizer=optimizer, + n_iter=100, + ) + hyper.run() + + # Access results + best_params = hyper.best_para(model) + best_score = hyper.best_score(model) + +**v5 (New)** + +.. code-block:: python + + from hyperactive.opt.gfo import HillClimbing + + def objective(params): + # Use params["param"] to access parameters + score = -(params["x"] ** 2) + return score + + search_space = { + "x": list(range(-10, 10)), + } + + # Configure optimizer directly + optimizer = HillClimbing( + search_space=search_space, + n_iter=100, + experiment=objective, + epsilon=0.1, + ) + + # Run optimization + best_params = optimizer.solve() + + # Access results + best_score = optimizer.best_score_ + + +Import Path Changes +------------------- + +The optimizer imports have changed: + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - v4 Import + - v5 Import + * - ``from hyperactive import Hyperactive`` + - Not needed + * - ``from hyperactive.optimizers import HillClimbingOptimizer`` + - ``from hyperactive.opt.gfo import HillClimbing`` + * - ``from hyperactive.optimizers import RandomSearchOptimizer`` + - ``from hyperactive.opt.gfo import RandomSearch`` + * - ``from hyperactive.optimizers import BayesianOptimizer`` + - ``from hyperactive.opt.gfo import BayesianOptimizer`` + +.. tip:: + + In v5, you can also import optimizers directly from ``hyperactive.opt``: + + .. code-block:: python + + from hyperactive.opt import HillClimbing, RandomSearch, BayesianOptimizer + + +Optimizer Name Changes +---------------------- + +Some optimizer class names have changed: + +.. list-table:: + :header-rows: 1 + :widths: 50 50 + + * - v4 Name + - v5 Name + * - ``HillClimbingOptimizer`` + - ``HillClimbing`` + * - ``RandomSearchOptimizer`` + - ``RandomSearch`` + * - ``ParticleSwarmOptimizer`` + - ``ParticleSwarmOptimizer`` (unchanged) + * - ``BayesianOptimizer`` + - ``BayesianOptimizer`` (unchanged) + * - ``TreeStructuredParzenEstimators`` + - ``TreeStructuredParzenEstimators`` (unchanged) + + +Method Changes +-------------- + +.. list-table:: + :header-rows: 1 + :widths: 30 30 40 + + * - Action + - v4 + - v5 + * - Run optimization + - ``hyper.run()`` + - ``optimizer.solve()`` + * - Get best params + - ``hyper.best_para(model)`` + - ``optimizer.best_params_`` + * - Get best score + - ``hyper.best_score(model)`` + - ``optimizer.best_score_`` + + +Scikit-learn Integration +------------------------ + +v5 introduces experiment classes for cleaner ML integration. + +**v4 (Old)** + +.. code-block:: python + + from sklearn.datasets import load_iris + from sklearn.ensemble import RandomForestClassifier + from sklearn.model_selection import cross_val_score + from hyperactive import Hyperactive + from hyperactive.optimizers import HillClimbingOptimizer + + X, y = load_iris(return_X_y=True) + + def model(opt): + clf = RandomForestClassifier( + n_estimators=opt["n_estimators"], + max_depth=opt["max_depth"], + ) + return cross_val_score(clf, X, y, cv=3).mean() + + search_space = { + "n_estimators": [10, 50, 100], + "max_depth": [3, 5, 10], + } + + hyper = Hyperactive() + hyper.add_search(model, search_space, n_iter=50) + hyper.run() + +**v5 (New) — Using SklearnCvExperiment** + +.. code-block:: python + + from sklearn.datasets import load_iris + from sklearn.ensemble import RandomForestClassifier + from hyperactive.experiment.integrations import SklearnCvExperiment + from hyperactive.opt.gfo import HillClimbing + + X, y = load_iris(return_X_y=True) + + experiment = SklearnCvExperiment( + estimator=RandomForestClassifier(), + X=X, y=y, cv=3, + ) + + search_space = { + "n_estimators": [10, 50, 100], + "max_depth": [3, 5, 10], + } + + optimizer = HillClimbing( + search_space=search_space, + n_iter=50, + experiment=experiment, + ) + best_params = optimizer.solve() + +**v5 (Alternative) — Using custom function** + +The v4-style custom function still works in v5: + +.. code-block:: python + + from sklearn.datasets import load_iris + from sklearn.ensemble import RandomForestClassifier + from sklearn.model_selection import cross_val_score + from hyperactive.opt.gfo import HillClimbing + + X, y = load_iris(return_X_y=True) + + def objective(params): + clf = RandomForestClassifier( + n_estimators=params["n_estimators"], + max_depth=params["max_depth"], + ) + return cross_val_score(clf, X, y, cv=3).mean() + + search_space = { + "n_estimators": [10, 50, 100], + "max_depth": [3, 5, 10], + } + + optimizer = HillClimbing( + search_space=search_space, + n_iter=50, + experiment=objective, + ) + best_params = optimizer.solve() + + +New Features in v5 +------------------ + +v5 introduces several new features: + +**Experiment Classes** + +Pre-built experiments for common ML tasks: + +- ``SklearnCvExperiment`` — scikit-learn cross-validation +- ``SktimeForecastingExperiment`` — sktime forecasting +- ``SktimeClassificationExperiment`` — sktime time series classification +- ``SkproProbaRegExperiment`` — skpro probabilistic regression +- ``TorchExperiment`` — PyTorch Lightning models + +**Optuna Backend** + +Access Optuna optimizers through Hyperactive: + +.. code-block:: python + + from hyperactive.opt.optuna import TPEOptimizer, CmaEsOptimizer + +**sklearn-Compatible Interface** + +Drop-in replacement for ``GridSearchCV``: + +.. code-block:: python + + from hyperactive.integrations.sklearn import OptCV + + search = OptCV(estimator=clf, param_space=space, n_iter=50) + search.fit(X, y) + + +Removed Features +---------------- + +The following v4 features are no longer available in v5: + +- ``Hyperactive.add_search()`` — Use optimizer constructor instead +- ``Hyperactive.run()`` — Use ``optimizer.solve()`` instead +- ``search_data`` parameter — Data collection handled differently +- ``memory`` parameter — Memory features restructured +- Multiple parallel searches — Use separate optimizer instances + + +Troubleshooting Migration +------------------------- + +**ImportError: cannot import name 'Hyperactive'** + +The ``Hyperactive`` class no longer exists. Use optimizers directly: + +.. code-block:: python + + # Old + from hyperactive import Hyperactive + + # New + from hyperactive.opt.gfo import HillClimbing + +**AttributeError: 'HillClimbing' object has no attribute 'run'** + +The ``.run()`` method is now ``.solve()``: + +.. code-block:: python + + # Old + hyper.run() + + # New + best_params = optimizer.solve() + +**TypeError: unexpected keyword argument 'optimizer'** + +Optimizer parameters are now passed to the constructor: + +.. code-block:: python + + # Old + hyper.add_search(model, space, optimizer=opt, n_iter=100) + + # New + optimizer = HillClimbing( + search_space=space, + n_iter=100, + experiment=model, + ) + + +Getting Help +------------ + +If you encounter issues migrating: + +1. Check the :ref:`api_reference` for current API +2. See :ref:`examples` for v5 code examples +3. Open an issue on `GitHub `_ +4. Ask on `Discord `_ diff --git a/docs/source/user_guide/optimizers.rst b/docs/source/user_guide/optimizers.rst new file mode 100644 index 00000000..748b393c --- /dev/null +++ b/docs/source/user_guide/optimizers.rst @@ -0,0 +1,325 @@ +.. _user_guide_optimizers: + +========== +Optimizers +========== + +Optimizers define *how* Hyperactive explores the search space to find optimal parameters. +This guide helps you choose the right optimizer for your problem and configure it effectively. + + +Choosing an Optimizer +--------------------- + +The best optimizer depends on your problem characteristics: + +.. list-table:: + :header-rows: 1 + :widths: 25 25 50 + + * - Scenario + - Recommended Optimizers + - Why + * - Quick baseline + - ``HillClimbing``, ``RandomSearch`` + - Fast, simple, good for initial exploration + * - Expensive evaluations + - ``BayesianOptimizer``, ``TPEOptimizer`` + - Learn from past evaluations, minimize function calls + * - Large search space + - ``RandomSearch``, ``ParticleSwarmOptimizer`` + - Good global coverage + * - Multi-modal landscape + - ``GeneticAlgorithm``, ``DifferentialEvolution`` + - Population-based, avoid local optima + * - Small search space + - ``GridSearch`` + - Exhaustive coverage when feasible + + +Optimizer Categories +-------------------- + +Hyperactive organizes optimizers into categories based on their search strategies. + + +Local Search +^^^^^^^^^^^^ + +Local search optimizers explore the neighborhood of the current best solution. +They're fast but may get stuck in local optima. + +**Hill Climbing** + +The simplest local search: always move to a better neighbor. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:hill_climbing] + :end-before: # [end:hill_climbing] + +**Simulated Annealing** + +Like hill climbing, but sometimes accepts worse solutions to escape local optima. +The "temperature" controls exploration vs exploitation. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:simulated_annealing] + :end-before: # [end:simulated_annealing] + +**Repulsing Hill Climbing** + +Remembers visited regions and avoids them, encouraging broader exploration. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:repulsing_hill_climbing] + :end-before: # [end:repulsing_hill_climbing] + +**Stochastic Hill Climbing** + +Hill climbing with a probability of accepting worse solutions. The ``p_accept`` +parameter controls exploration — higher values make it more likely to accept +non-improving moves, helping escape local optima. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:stochastic_hill_climbing] + :end-before: # [end:stochastic_hill_climbing] + +**Downhill Simplex (Nelder-Mead)** + +Uses a simplex of points to navigate the search space. Good for continuous problems. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:downhill_simplex] + :end-before: # [end:downhill_simplex] + + +Global Search +^^^^^^^^^^^^^ + +Global search optimizers explore the entire search space more thoroughly. + +**Random Search** + +Samples random points from the search space. Simple but surprisingly effective baseline. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:random_search] + :end-before: # [end:random_search] + +**Grid Search** + +Evaluates all combinations systematically. Only practical for small search spaces. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:grid_search] + :end-before: # [end:grid_search] + +**Random Restart Hill Climbing** + +Runs hill climbing from multiple random starting points. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:random_restart_hill_climbing] + :end-before: # [end:random_restart_hill_climbing] + +**Powell's Method** and **Pattern Search** + +Classical derivative-free optimization methods. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:powells_pattern] + :end-before: # [end:powells_pattern] + + +Population Methods +^^^^^^^^^^^^^^^^^^ + +Population-based optimizers maintain multiple candidate solutions that evolve together. +They're excellent for complex, multi-modal optimization landscapes. + +**Particle Swarm Optimization** + +Particles "fly" through the search space, influenced by their own best position +and the swarm's best position. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:particle_swarm] + :end-before: # [end:particle_swarm] + +**Genetic Algorithm** + +Evolves a population using selection, crossover, and mutation inspired by biology. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:genetic_algorithm] + :end-before: # [end:genetic_algorithm] + +**Evolution Strategy** + +Similar to genetic algorithms but focused on real-valued optimization. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:evolution_strategy] + :end-before: # [end:evolution_strategy] + +**Differential Evolution** + +Uses vector differences to guide mutation. Excellent for continuous optimization. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:differential_evolution] + :end-before: # [end:differential_evolution] + +**Parallel Tempering** + +Runs multiple chains at different "temperatures" and exchanges information between them. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:parallel_tempering] + :end-before: # [end:parallel_tempering] + +**Spiral Optimization** + +Particles spiral toward the best solution found so far. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:spiral_optimization] + :end-before: # [end:spiral_optimization] + + +Sequential Model-Based (Bayesian) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +These optimizers build a model of the objective function and use it to decide +where to sample next. Best for expensive evaluations. + +**Bayesian Optimization** + +Uses Gaussian Process regression to model the objective and acquisition functions +to balance exploration and exploitation. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:bayesian_optimizer] + :end-before: # [end:bayesian_optimizer] + +**Tree-Structured Parzen Estimators (TPE)** + +Models the distribution of good and bad parameters separately. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:tpe] + :end-before: # [end:tpe] + +**Forest Optimizer** + +Uses Random Forest to model the objective function. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:forest_optimizer] + :end-before: # [end:forest_optimizer] + +**Lipschitz Optimization** and **DIRECT Algorithm** + +Use Lipschitz continuity assumptions to guide the search. + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:lipschitz_direct] + :end-before: # [end:lipschitz_direct] + + +Optuna Backend +^^^^^^^^^^^^^^ + +Hyperactive provides wrappers for Optuna's powerful samplers: + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:optuna_imports] + :end-before: # [end:optuna_imports] + +Example with Optuna TPE: + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:optuna_tpe] + :end-before: # [end:optuna_tpe] + + +Optimizer Configuration +----------------------- + +Common Parameters +^^^^^^^^^^^^^^^^^ + +All optimizers accept these parameters: + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:common_parameters] + :end-before: # [end:common_parameters] + + +Initialization Strategies +^^^^^^^^^^^^^^^^^^^^^^^^^ + +Control how the optimizer initializes its search: + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:warm_start_example] + :end-before: # [end:warm_start_example] + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:initialization_strategies] + :end-before: # [end:initialization_strategies] + + +Algorithm-Specific Parameters +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Many optimizers have additional parameters. Check the :ref:`api_reference` for details. + +Example with Simulated Annealing: + +.. literalinclude:: ../_snippets/user_guide/optimizers.py + :language: python + :start-after: # [start:simulated_annealing_config] + :end-before: # [end:simulated_annealing_config] + + +Performance Tips +---------------- + +1. **Start with baselines**: Always run ``RandomSearch`` first to establish + a baseline and understand your objective landscape. + +2. **Match iterations to complexity**: Complex optimizers (Bayesian, population-based) + need more iterations to show their advantages. + +3. **Consider evaluation cost**: For cheap evaluations, simple optimizers work well. + For expensive ones, use model-based approaches. + +4. **Use warm starts**: If you have prior knowledge, warm start can significantly + speed up optimization. + +5. **Set random seeds**: For reproducible results, always set ``random_state``. diff --git a/docs/source/user_guide/search_spaces.rst b/docs/source/user_guide/search_spaces.rst new file mode 100644 index 00000000..ee7fbb4a --- /dev/null +++ b/docs/source/user_guide/search_spaces.rst @@ -0,0 +1,355 @@ +.. _user_guide_search_spaces: + +========================= +Search Space Best Practices +========================= + +This guide covers how to design effective search spaces for hyperparameter optimization. +A well-designed search space can significantly improve optimization results and efficiency. + + +Understanding Search Spaces +--------------------------- + +A search space defines the possible values for each parameter. Hyperactive samples +from these values during optimization. The quality of your search space directly +affects: + +- **Optimization speed**: Smaller, targeted spaces converge faster +- **Solution quality**: Including good values is essential for finding them +- **Memory usage**: Very large spaces can cause memory issues with some optimizers + + +Defining Search Spaces +---------------------- + +Basic Structure +^^^^^^^^^^^^^^^ + +Search spaces are Python dictionaries mapping parameter names to lists of possible values: + +.. code-block:: python + + search_space = { + "n_estimators": [10, 50, 100, 200], + "max_depth": [3, 5, 10, None], + "min_samples_split": [2, 5, 10], + } + + +Discrete Values +^^^^^^^^^^^^^^^ + +For parameters with a small set of distinct values: + +.. code-block:: python + + search_space = { + # Categorical choices + "kernel": ["linear", "rbf", "poly"], + + # Boolean flags + "fit_intercept": [True, False], + + # Specific integer values + "n_neighbors": [3, 5, 7, 9, 11], + } + + +Continuous Ranges +^^^^^^^^^^^^^^^^^ + +For parameters that vary continuously, use NumPy to create arrays: + +.. code-block:: python + + import numpy as np + + search_space = { + # Linear spacing for uniform ranges + "momentum": np.linspace(0.5, 0.99, 50).tolist(), + + # Log spacing for parameters spanning orders of magnitude + "learning_rate": np.logspace(-4, -1, 50).tolist(), + + # Integer range + "hidden_size": list(range(32, 257, 32)), # 32, 64, 96, ... + } + +.. tip:: + + Convert NumPy arrays to lists with ``.tolist()`` for cleaner code, + though Hyperactive accepts both formats. + + +Scale-Appropriate Spacing +------------------------- + +Linear vs Logarithmic +^^^^^^^^^^^^^^^^^^^^^ + +The spacing between values should match how the parameter affects your objective: + +**Linear spacing** — When changes have proportional effects: + +.. code-block:: python + + # Dropout rate: 0.1 → 0.2 has similar effect as 0.5 → 0.6 + "dropout": np.linspace(0.0, 0.5, 11).tolist() + +**Logarithmic spacing** — When the parameter spans orders of magnitude: + +.. code-block:: python + + # Learning rate: 0.001 → 0.01 is as significant as 0.01 → 0.1 + "learning_rate": np.logspace(-4, -1, 20).tolist() + +Common parameters that benefit from log spacing: + +- Learning rates (``1e-5`` to ``1e-1``) +- Regularization strength (``1e-6`` to ``1e1``) +- Batch sizes (powers of 2: 16, 32, 64, 128, ...) + + +Choosing Granularity +-------------------- + +The number of values per parameter affects the total search space size: + +.. code-block:: python + + # Fine granularity: 100 values per parameter + # 3 parameters → 100^3 = 1,000,000 combinations + "param_a": np.linspace(0, 1, 100).tolist(), + "param_b": np.linspace(0, 1, 100).tolist(), + "param_c": np.linspace(0, 1, 100).tolist(), + + # Coarse granularity: 10 values per parameter + # 3 parameters → 10^3 = 1,000 combinations + "param_a": np.linspace(0, 1, 10).tolist(), + "param_b": np.linspace(0, 1, 10).tolist(), + "param_c": np.linspace(0, 1, 10).tolist(), + +**Guidelines:** + +- Start coarse, refine after initial results +- Use finer granularity for sensitive parameters +- Use coarser granularity for less important parameters + + +Search Space Size Considerations +-------------------------------- + +Calculate your total search space size: + +.. code-block:: python + + from functools import reduce + import operator + + search_space = { + "n_estimators": [10, 50, 100, 200], # 4 values + "max_depth": [3, 5, 10, None], # 4 values + "learning_rate": np.logspace(-3, 0, 20), # 20 values + } + + total_combinations = reduce( + operator.mul, + [len(v) for v in search_space.values()] + ) + print(f"Total combinations: {total_combinations:,}") # 320 + +**Recommendations by search space size:** + +.. list-table:: + :header-rows: 1 + :widths: 25 35 40 + + * - Size + - Recommended Approach + - Optimizer Suggestions + * - <100 + - Grid search (exhaustive) + - ``GridSearch`` + * - 100–10,000 + - Random or local search + - ``RandomSearch``, ``HillClimbing`` + * - 10,000–1,000,000 + - Smart sampling required + - ``BayesianOptimizer``, ``TPE`` + * - >1,000,000 + - Reduce search space or use population methods + - ``ParticleSwarmOptimizer``, ``EvolutionStrategy`` + + +Handling Parameter Dependencies +------------------------------- + +Sometimes parameters have dependencies. Handle these in your objective function: + +.. code-block:: python + + def objective(params): + # Constraint: min_samples_split >= min_samples_leaf + if params["min_samples_split"] < params["min_samples_leaf"]: + return -np.inf # Invalid configuration + + # Constraint: kernel-specific parameters + if params["kernel"] != "poly" and params["degree"] != 3: + return -np.inf # degree only relevant for poly kernel + + # Valid configuration — proceed with evaluation + return evaluate_model(params) + +.. note:: + + Returning ``-np.inf`` effectively removes invalid combinations from consideration. + + +Common Search Space Patterns +---------------------------- + +Scikit-learn Classifiers +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. code-block:: python + + # Random Forest + rf_space = { + "n_estimators": [50, 100, 200, 500], + "max_depth": [None, 5, 10, 20, 30], + "min_samples_split": [2, 5, 10], + "min_samples_leaf": [1, 2, 4], + "max_features": ["sqrt", "log2", None], + } + + # Gradient Boosting + gb_space = { + "n_estimators": [50, 100, 200], + "learning_rate": np.logspace(-3, 0, 10).tolist(), + "max_depth": [3, 5, 7, 9], + "subsample": np.linspace(0.6, 1.0, 5).tolist(), + } + + # SVM + svm_space = { + "C": np.logspace(-2, 2, 10).tolist(), + "gamma": np.logspace(-4, -1, 10).tolist(), + "kernel": ["rbf", "poly", "sigmoid"], + } + + +Neural Networks +^^^^^^^^^^^^^^^ + +.. code-block:: python + + nn_space = { + "hidden_layers": [1, 2, 3], + "hidden_size": [32, 64, 128, 256], + "learning_rate": np.logspace(-4, -2, 20).tolist(), + "dropout": np.linspace(0.0, 0.5, 6).tolist(), + "batch_size": [16, 32, 64, 128], + "activation": ["relu", "tanh", "elu"], + } + + +Iterative Refinement Strategy +----------------------------- + +A practical approach for finding optimal hyperparameters: + +**Phase 1: Coarse Search** + +.. code-block:: python + + # Wide ranges, few values + coarse_space = { + "learning_rate": [1e-4, 1e-3, 1e-2, 1e-1], + "hidden_size": [32, 128, 512], + "dropout": [0.0, 0.25, 0.5], + } + + optimizer = RandomSearch( + search_space=coarse_space, + n_iter=50, + experiment=objective, + ) + best = optimizer.solve() + # Result: learning_rate=1e-3 works best + +**Phase 2: Fine-tune Around Best Values** + +.. code-block:: python + + # Narrow ranges around best from phase 1 + fine_space = { + "learning_rate": np.logspace(-3.5, -2.5, 20).tolist(), # Around 1e-3 + "hidden_size": list(range(96, 192, 16)), # Around 128 + "dropout": np.linspace(0.2, 0.4, 10).tolist(), # Around 0.25 + } + + optimizer = BayesianOptimizer( + search_space=fine_space, + n_iter=100, + experiment=objective, + ) + final_best = optimizer.solve() + + +Common Mistakes to Avoid +------------------------ + +**1. Overly Large Search Spaces** + +.. code-block:: python + + # Bad: 1000 * 1000 * 1000 = 1 billion combinations + bad_space = { + "param_a": np.linspace(0, 1, 1000).tolist(), + "param_b": np.linspace(0, 1, 1000).tolist(), + "param_c": np.linspace(0, 1, 1000).tolist(), + } + + # Better: 50 * 50 * 50 = 125,000 combinations + better_space = { + "param_a": np.linspace(0, 1, 50).tolist(), + "param_b": np.linspace(0, 1, 50).tolist(), + "param_c": np.linspace(0, 1, 50).tolist(), + } + +**2. Linear Spacing for Log-Scale Parameters** + +.. code-block:: python + + # Bad: most values clustered at high end + bad_lr = np.linspace(0.0001, 0.1, 20).tolist() + # Values: 0.0001, 0.0053, 0.0106, ... (poor coverage of small values) + + # Good: even distribution across magnitudes + good_lr = np.logspace(-4, -1, 20).tolist() + # Values: 0.0001, 0.00016, 0.00025, ... 0.063, 0.1 + +**3. Missing Important Values** + +.. code-block:: python + + # Bad: might miss optimal region entirely + bad_space = {"max_depth": [2, 3, 4]} + + # Better: include None and reasonable range + better_space = {"max_depth": [None, 3, 5, 10, 20, 50]} + +**4. Ignoring Parameter Interactions** + +Some parameters interact strongly. Consider them together: + +.. code-block:: python + + # Learning rate and batch size often interact + # Higher batch sizes often need higher learning rates + search_space = { + "batch_size": [16, 32, 64, 128], + "learning_rate": np.logspace(-4, -1, 20).tolist(), + } + # The optimizer will explore combinations to find the best pairing diff --git a/docs/tests/__init__.py b/docs/tests/__init__.py new file mode 100644 index 00000000..c5de4959 --- /dev/null +++ b/docs/tests/__init__.py @@ -0,0 +1 @@ +"""Documentation tests package.""" diff --git a/docs/tests/test_doc_snippets.py b/docs/tests/test_doc_snippets.py new file mode 100644 index 00000000..0a7ab2e9 --- /dev/null +++ b/docs/tests/test_doc_snippets.py @@ -0,0 +1,270 @@ +"""Test all documentation code snippets. + +This module discovers and tests all Python snippet files in the documentation. +Only snippets in the 'getting_started/' directory are tested for execution, +as they contain complete, runnable examples. + +User guide snippets may contain illustrative code with placeholders and are +not required to be executable - they serve documentation purposes. +""" + +import importlib.util +import re +import subprocess +import sys +from pathlib import Path + +import pytest + +# Path to the snippets directory +SNIPPETS_DIR = Path(__file__).parent.parent / "source" / "_snippets" +# Path to the docs source directory +SOURCE_DIR = Path(__file__).parent.parent / "source" +# Path to the repository root +REPO_ROOT = Path(__file__).parent.parent.parent + + +def get_testable_snippet_files(): + """Collect Python files in testable directories. + + Only includes files from directories that contain complete, runnable examples. + Currently: getting_started/, examples/, installation/ + + Returns + ------- + list[Path] + List of paths to testable Python snippet files. + """ + testable_dirs = ["getting_started", "examples", "installation"] + snippet_files = [] + + for dir_name in testable_dirs: + dir_path = SNIPPETS_DIR / dir_name + if dir_path.exists(): + for path in dir_path.rglob("*.py"): + if path.name not in ("__init__.py", "conftest.py"): + snippet_files.append(path) + + return sorted(snippet_files) + + +def get_all_snippet_files(): + """Collect all Python files in the snippets directory. + + Returns + ------- + list[Path] + List of paths to all Python snippet files. + """ + snippet_files = [] + for path in SNIPPETS_DIR.rglob("*.py"): + if path.name not in ("__init__.py", "conftest.py"): + snippet_files.append(path) + return sorted(snippet_files) + + +def _snippet_id(path): + """Generate a readable test ID for a snippet file.""" + return str(path.relative_to(SNIPPETS_DIR)) + + +@pytest.mark.parametrize("snippet_file", get_testable_snippet_files(), ids=_snippet_id) +def test_snippet_executes(snippet_file): + """Test that each runnable snippet file executes without errors. + + This runs each snippet as a subprocess to ensure isolation between tests + and to catch any import-time errors. + + Parameters + ---------- + snippet_file : Path + Path to the snippet file to test. + """ + result = subprocess.run( + [sys.executable, str(snippet_file)], + capture_output=True, + text=True, + timeout=120, # 2 minute timeout for optimization examples + cwd=str(SNIPPETS_DIR), + ) + + # Provide helpful error message on failure + if result.returncode != 0: + error_msg = f"Snippet {snippet_file.name} failed to execute.\n" + error_msg += f"stdout:\n{result.stdout}\n" + error_msg += f"stderr:\n{result.stderr}" + pytest.fail(error_msg) + + +@pytest.mark.parametrize("snippet_file", get_testable_snippet_files(), ids=_snippet_id) +def test_snippet_imports(snippet_file): + """Test that each runnable snippet file can be imported as a module. + + This catches syntax errors and import-time errors in a more controlled way. + + Parameters + ---------- + snippet_file : Path + Path to the snippet file to test. + """ + spec = importlib.util.spec_from_file_location( + f"snippet_{snippet_file.stem}", snippet_file + ) + if spec is None or spec.loader is None: + pytest.fail(f"Could not load spec for {snippet_file}") + + module = importlib.util.module_from_spec(spec) + try: + spec.loader.exec_module(module) + except Exception as e: + pytest.fail(f"Snippet {snippet_file.name} failed to import: {e}") + + +def test_all_snippets_have_markers(): + """Test that all snippet files contain proper start/end markers. + + This ensures that literalinclude directives can extract code properly. + """ + for snippet_file in get_all_snippet_files(): + content = snippet_file.read_text() + + # Check for at least one start/end pair + has_start = "# [start:" in content + has_end = "# [end:" in content + + if not (has_start and has_end): + pytest.fail( + f"Snippet {snippet_file.name} missing start/end markers. " + f"has_start={has_start}, has_end={has_end}" + ) + + +def test_snippet_markers_are_balanced(): + """Test that start/end markers are properly paired in each snippet file.""" + import re + + for snippet_file in get_all_snippet_files(): + content = snippet_file.read_text() + + starts = re.findall(r"# \[start:(\w+)\]", content) + ends = re.findall(r"# \[end:(\w+)\]", content) + + # Check that every start has a matching end + for marker in starts: + if marker not in ends: + pytest.fail( + f"Snippet {snippet_file.name} has unmatched start marker: {marker}" + ) + + for marker in ends: + if marker not in starts: + pytest.fail( + f"Snippet {snippet_file.name} has unmatched end marker: {marker}" + ) + + +def get_rst_files(): + """Collect all RST files in the source directory. + + Returns + ------- + list[Path] + List of paths to all RST files. + """ + return sorted(SOURCE_DIR.rglob("*.rst")) + + +def extract_github_file_links(content: str) -> list[tuple[str, str]]: + """Extract GitHub file links from RST content. + + Finds links of the form: + https://github.com/SimonBlanke/Hyperactive/blob/master/path/to/file.py + + Parameters + ---------- + content : str + RST file content. + + Returns + ------- + list[tuple[str, str]] + List of (full_url, relative_path) tuples. + """ + # Pattern matches GitHub blob URLs to this repo + pattern = r"https://github\.com/SimonBlanke/Hyperactive/blob/master/([^\s>`\"\']+)" + matches = re.findall(pattern, content) + return [ + (f"https://github.com/SimonBlanke/Hyperactive/blob/master/{path}", path) + for path in matches + ] + + +def test_github_example_links_exist(): + """Test that all GitHub example links in RST files point to existing files. + + This verifies that documentation links to example files are not broken. + Only checks links to files within this repository. + """ + broken_links = [] + + for rst_file in get_rst_files(): + content = rst_file.read_text() + links = extract_github_file_links(content) + + for full_url, rel_path in links: + local_path = REPO_ROOT / rel_path + if not local_path.exists(): + broken_links.append(f"{rst_file.name}: {rel_path} (file not found)") + + if broken_links: + msg = f"Found {len(broken_links)} broken GitHub file link(s):\n" + msg += "\n".join(f" - {link}" for link in broken_links) + pytest.fail(msg) + + +def extract_include_paths(content: str) -> list[str]: + """Extract include and literalinclude paths from RST content. + + Parameters + ---------- + content : str + RST file content. + + Returns + ------- + list[str] + List of relative paths referenced by include directives. + """ + # Match both include and literalinclude directives + # Format: .. include:: path or .. literalinclude:: path + pattern = r"\.\.\s+(?:include|literalinclude)::\s+([^\s\n]+)" + return re.findall(pattern, content) + + +def test_rst_includes_exist(): + """Test that all include/literalinclude paths in RST files exist. + + This catches broken include directives that reference non-existent files. + """ + broken_includes = [] + + for rst_file in get_rst_files(): + # Skip auto-generated files and templates (they use Jinja placeholders) + if "auto_generated" in str(rst_file) or "_templates" in str(rst_file): + continue + + content = rst_file.read_text() + includes = extract_include_paths(content) + + for include_path in includes: + # Resolve path relative to the RST file's directory + full_path = rst_file.parent / include_path + if not full_path.exists(): + broken_includes.append( + f"{rst_file.relative_to(SOURCE_DIR)}: {include_path}" + ) + + if broken_includes: + msg = f"Found {len(broken_includes)} broken include path(s):\n" + msg += "\n".join(f" - {inc}" for inc in broken_includes) + pytest.fail(msg) diff --git a/pyproject.toml b/pyproject.toml index a11b720e..b7d5c6c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,7 +59,7 @@ build = [ "wheel", ] test = [ - "pytest == 9.0.1", + "pytest == 9.0.2", "flake8", "pytest-cov", "pathos", @@ -71,9 +71,19 @@ test_parallel_backends = [ "joblib", 'ray >=2.40.0; python_version < "3.13"', ] +docs = [ + "myst-parser", + "numpydoc", + "pydata-sphinx-theme", + "Sphinx>=7.0.0,<9.0.0", + "sphinx-copybutton", + "sphinx-design", + "sphinx-issues", +] all_extras = [ "hyperactive[integrations]", "optuna<5", + "cmaes", # Required for CmaEsOptimizer (optuna's CMA-ES sampler) "lightning", ] diff --git a/requirements/requirements-test.in b/requirements/requirements-test.in index 9b22ebe5..b9ce6794 100644 --- a/requirements/requirements-test.in +++ b/requirements/requirements-test.in @@ -1,4 +1,4 @@ -pytest == 9.0.1 +pytest == 9.0.2 flake8 pytest-cov pathos diff --git a/src/hyperactive/integrations/sklearn/opt_cv.py b/src/hyperactive/integrations/sklearn/opt_cv.py index 2f0366fe..aae6ffc0 100644 --- a/src/hyperactive/integrations/sklearn/opt_cv.py +++ b/src/hyperactive/integrations/sklearn/opt_cv.py @@ -1,7 +1,6 @@ """opt_cv module for Hyperactive optimization.""" from collections.abc import Callable -from typing import Union from sklearn.base import BaseEstimator, clone @@ -107,7 +106,7 @@ def __init__( estimator, optimizer, *, - scoring: Union[Callable, str, None] = None, + scoring: Callable | str | None = None, refit: bool = True, cv=None, ): diff --git a/src/hyperactive/opt/optuna/_cmaes_optimizer.py b/src/hyperactive/opt/optuna/_cmaes_optimizer.py index 4e47f0ec..3c3c5788 100644 --- a/src/hyperactive/opt/optuna/_cmaes_optimizer.py +++ b/src/hyperactive/opt/optuna/_cmaes_optimizer.py @@ -128,6 +128,7 @@ def get_test_params(cls, parameter_set="default"): from sklearn.datasets import make_regression from sklearn.neural_network import MLPRegressor + from hyperactive.experiment.bench import Sphere from hyperactive.experiment.integrations import SklearnCvExperiment # Test case 1: Basic continuous parameters (from base) @@ -165,6 +166,8 @@ def get_test_params(cls, parameter_set="default"): ) # Test case 3: High-dimensional continuous space (CMA-ES strength) + # Use Sphere benchmark which expects x0, x1, ..., xN params + sphere_exp = Sphere(n_dim=6) high_dim_continuous = { f"x{i}": (-1.0, 1.0) for i in range(6) # 6D continuous optimization @@ -174,7 +177,7 @@ def get_test_params(cls, parameter_set="default"): { "param_space": high_dim_continuous, "n_trials": 12, - "experiment": mlp_exp, + "experiment": sphere_exp, "sigma0": 0.7, # Larger initial spread "n_startup_trials": 3, }