hypershap 0.0.2__tar.gz → 0.0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. hypershap-0.0.3/CHANGELOG.md +20 -0
  2. {hypershap-0.0.2 → hypershap-0.0.3}/PKG-INFO +13 -13
  3. {hypershap-0.0.2 → hypershap-0.0.3}/README.md +12 -12
  4. hypershap-0.0.3/docs/api/games.md +2 -0
  5. hypershap-0.0.3/docs/api/hypershap.md +2 -0
  6. hypershap-0.0.3/docs/api/surrogate_model.md +2 -0
  7. hypershap-0.0.3/docs/api/task.md +2 -0
  8. hypershap-0.0.3/docs/api/utils.md +2 -0
  9. hypershap-0.0.3/docs/authors.md +9 -0
  10. hypershap-0.0.3/docs/cite.md +25 -0
  11. hypershap-0.0.3/docs/contribute.md +126 -0
  12. hypershap-0.0.3/docs/getting_started.md +48 -0
  13. hypershap-0.0.3/docs/help.md +7 -0
  14. hypershap-0.0.3/docs/index.md +34 -0
  15. hypershap-0.0.3/docs/license.md +8 -0
  16. hypershap-0.0.3/examples/carps-benchmark-example.ipynb +308 -0
  17. {hypershap-0.0.2 → hypershap-0.0.3}/mkdocs.yml +14 -1
  18. {hypershap-0.0.2 → hypershap-0.0.3}/pyproject.toml +6 -2
  19. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/games/__init__.py +4 -1
  20. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/games/ablation.py +49 -2
  21. hypershap-0.0.3/src/hypershap/games/multi_data.py +63 -0
  22. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/games/tunability.py +10 -10
  23. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/hypershap.py +236 -13
  24. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/surrogate_model.py +0 -30
  25. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/task.py +150 -18
  26. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/utils.py +29 -30
  27. {hypershap-0.0.2 → hypershap-0.0.3}/tests/conftest.py +2 -0
  28. hypershap-0.0.3/tests/fixtures/large_setup.py +76 -0
  29. hypershap-0.0.3/tests/fixtures/multi_data_setup.py +45 -0
  30. hypershap-0.0.3/tests/test_extended_settings.py +66 -0
  31. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_games.py +5 -5
  32. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_hypershap.py +73 -18
  33. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_task.py +108 -0
  34. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_utils.py +16 -36
  35. {hypershap-0.0.2 → hypershap-0.0.3}/uv.lock +2618 -17
  36. hypershap-0.0.2/CHANGELOG.md +0 -14
  37. hypershap-0.0.2/docs/index.md +0 -8
  38. hypershap-0.0.2/docs/modules.md +0 -16
  39. {hypershap-0.0.2 → hypershap-0.0.3}/.devcontainer/devcontainer.json +0 -0
  40. {hypershap-0.0.2 → hypershap-0.0.3}/.devcontainer/postCreateCommand.sh +0 -0
  41. {hypershap-0.0.2 → hypershap-0.0.3}/.github/actions/setup-python-env/action.yml +0 -0
  42. {hypershap-0.0.2 → hypershap-0.0.3}/.github/workflows/main.yml +0 -0
  43. {hypershap-0.0.2 → hypershap-0.0.3}/.github/workflows/on-release-main.yml +0 -0
  44. {hypershap-0.0.2 → hypershap-0.0.3}/.github/workflows/validate-codecov-config.yml +0 -0
  45. {hypershap-0.0.2 → hypershap-0.0.3}/.gitignore +0 -0
  46. {hypershap-0.0.2 → hypershap-0.0.3}/.pre-commit-config.yaml +0 -0
  47. {hypershap-0.0.2 → hypershap-0.0.3}/CONTRIBUTING.md +0 -0
  48. {hypershap-0.0.2 → hypershap-0.0.3}/LICENSE +0 -0
  49. {hypershap-0.0.2 → hypershap-0.0.3}/Makefile +0 -0
  50. {hypershap-0.0.2 → hypershap-0.0.3}/codecov.yaml +0 -0
  51. {hypershap-0.0.2 → hypershap-0.0.3}/examples/ablation-example.ipynb +0 -0
  52. {hypershap-0.0.2 → hypershap-0.0.3}/examples/explanation-task-example.ipynb +0 -0
  53. {hypershap-0.0.2 → hypershap-0.0.3}/examples/optimizerbias-example.ipynb +0 -0
  54. {hypershap-0.0.2 → hypershap-0.0.3}/examples/tunability-example.ipynb +0 -0
  55. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/__init__.py +0 -0
  56. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/games/abstract.py +0 -0
  57. {hypershap-0.0.2 → hypershap-0.0.3}/src/hypershap/games/optimizerbias.py +0 -0
  58. {hypershap-0.0.2 → hypershap-0.0.3}/tests/__init__.py +0 -0
  59. {hypershap-0.0.2 → hypershap-0.0.3}/tests/fixtures/__init__.py +0 -0
  60. {hypershap-0.0.2 → hypershap-0.0.3}/tests/fixtures/simple_setup.py +0 -0
  61. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_ablation_game.py +0 -0
  62. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_surrogate_model.py +0 -0
  63. {hypershap-0.0.2 → hypershap-0.0.3}/tests/test_tunability_game.py +0 -0
  64. {hypershap-0.0.2 → hypershap-0.0.3}/tox.ini +0 -0
@@ -0,0 +1,20 @@
1
+ # v0.0.3
2
+ - Added multi-baseline ablation game. This game computes ablation paths with respect to multiple baseline configurations and aggregates values for different paths via mean, min, max or variance.
3
+ - Added waterfall plots to the HyperSHAP interface.
4
+ - Added support for multi-data settings
5
+ - Enabled approximation of Shapley values and interactions for settings exceeding a certain number of hyperparameters.
6
+
7
+ # v0.0.2
8
+ - Added parallelization for faster analysis
9
+
10
+ ## Maintenance
11
+ - Added unit tests for proper quality assurance and continuous integration
12
+ - Relaxed requirements to allow interoperability with python 3.10
13
+
14
+ # v0.0.1
15
+ - Initial implementation of HyperSHAP and its explanation games:
16
+ - AblationGame
17
+ - TunabilityGame
18
+ - MistunabilityGame
19
+ - SensitivityGame
20
+ - OptimizerBiasGame
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypershap
3
- Version: 0.0.2
3
+ Version: 0.0.3
4
4
  Summary: HyperSHAP is a post-hoc explanation method for hyperparameter optimization.
5
5
  Project-URL: Homepage, https://automl.github.io/hypershap/
6
6
  Project-URL: Repository, https://github.com/automl/hypershap
@@ -100,14 +100,14 @@ The example demonstrates how to:
100
100
 
101
101
  ## API Overview
102
102
 
103
- | Method | Purpose | Key Arguments |
104
- |--------|---------|---------------|
105
- | `HyperSHAP(explanation_task)` | Initialise the explainer with a generic `ExplanationTask`. |
103
+ | Method | Purpose | Key Arguments |
104
+ |--------|-----------------------------------------------------------------------------------------------------------------------------------|---------------|
105
+ | `HyperSHAP(explanation_task)` | Initialize the explainer with a generic `ExplanationTask`. |
106
106
  | `ablation(config_of_interest, baseline_config, index="FSII", order=2)` | Explain the contribution of each hyperparameter value (and interactions) when moving from a baseline to a specific configuration. |
107
- | `tunability(baseline_config=None, index="FSII", order=2, n_samples=10_000)` | Quantify how much performance can be gained by tuning subsets of hyper‑parameters. |
108
- | `optimizer_bias(optimizer_of_interest, optimizer_ensemble, index="FSII", order=2)` | Attribute performance differences to a particular optimizer vs. an ensemble of optimizers. |
109
- | `plot_si_graph(interaction_values=None, save_path=None)` | Plot the Shapley Interaction (SI) graph; uses the most recent interaction values if none are supplied. |
110
- | `ExplanationTask.get_hyperparameter_names()` | Helper to retrieve ordered hyper‑parameter names (used for visualisation). |
107
+ | `tunability(baseline_config=None, index="FSII", order=2, n_samples=10_000)` | Quantify how much performance can be gained by tuning subsets of hyper‑parameters. |
108
+ | `optimizer_bias(optimizer_of_interest, optimizer_ensemble, index="FSII", order=2)` | Attribute performance differences to a particular optimizer vs. an ensemble of optimizers. |
109
+ | `plot_si_graph(interaction_values=None, save_path=None)` | Plot the Shapley Interaction (SI) graph; uses the most recent interaction values if none are supplied. |
110
+ | `ExplanationTask.get_hyperparameter_names()` | Helper to retrieve ordered hyper‑parameter names (used for visualisation). |
111
111
 
112
112
  All methods return an `InteractionValues` object (from **shapiq**) that can be inspected, saved, or passed to the visualisation routine.
113
113
 
@@ -147,11 +147,11 @@ The paper introduces the underlying game-theoretic framework and demonstrates it
147
147
 
148
148
  Contributions are welcome! Please follow these steps:
149
149
 
150
- Fork the repo and create a feature branch (git checkout -b feat/your-feature).
151
- Write tests (the project uses pytest).
152
- Ensure all tests pass (pytest).
153
- Update documentation if you add new functionality.
154
- Submit a Pull Request with a clear description of the changes.
150
+ 1. Fork the repo and create a feature branch (git checkout -b feat/your-feature).
151
+ 2. Write tests (the project uses pytest).
152
+ 3. Ensure all tests pass (pytest).
153
+ 4. Update documentation if you add new functionality.
154
+ 5. Submit a Pull Request with a clear description of the changes.
155
155
 
156
156
 
157
157
  See CONTRIBUTING.md for detailed guidelines.
@@ -74,14 +74,14 @@ The example demonstrates how to:
74
74
 
75
75
  ## API Overview
76
76
 
77
- | Method | Purpose | Key Arguments |
78
- |--------|---------|---------------|
79
- | `HyperSHAP(explanation_task)` | Initialise the explainer with a generic `ExplanationTask`. |
77
+ | Method | Purpose | Key Arguments |
78
+ |--------|-----------------------------------------------------------------------------------------------------------------------------------|---------------|
79
+ | `HyperSHAP(explanation_task)` | Initialize the explainer with a generic `ExplanationTask`. |
80
80
  | `ablation(config_of_interest, baseline_config, index="FSII", order=2)` | Explain the contribution of each hyperparameter value (and interactions) when moving from a baseline to a specific configuration. |
81
- | `tunability(baseline_config=None, index="FSII", order=2, n_samples=10_000)` | Quantify how much performance can be gained by tuning subsets of hyper‑parameters. |
82
- | `optimizer_bias(optimizer_of_interest, optimizer_ensemble, index="FSII", order=2)` | Attribute performance differences to a particular optimizer vs. an ensemble of optimizers. |
83
- | `plot_si_graph(interaction_values=None, save_path=None)` | Plot the Shapley Interaction (SI) graph; uses the most recent interaction values if none are supplied. |
84
- | `ExplanationTask.get_hyperparameter_names()` | Helper to retrieve ordered hyper‑parameter names (used for visualisation). |
81
+ | `tunability(baseline_config=None, index="FSII", order=2, n_samples=10_000)` | Quantify how much performance can be gained by tuning subsets of hyper‑parameters. |
82
+ | `optimizer_bias(optimizer_of_interest, optimizer_ensemble, index="FSII", order=2)` | Attribute performance differences to a particular optimizer vs. an ensemble of optimizers. |
83
+ | `plot_si_graph(interaction_values=None, save_path=None)` | Plot the Shapley Interaction (SI) graph; uses the most recent interaction values if none are supplied. |
84
+ | `ExplanationTask.get_hyperparameter_names()` | Helper to retrieve ordered hyper‑parameter names (used for visualisation). |
85
85
 
86
86
  All methods return an `InteractionValues` object (from **shapiq**) that can be inspected, saved, or passed to the visualisation routine.
87
87
 
@@ -121,11 +121,11 @@ The paper introduces the underlying game-theoretic framework and demonstrates it
121
121
 
122
122
  Contributions are welcome! Please follow these steps:
123
123
 
124
- Fork the repo and create a feature branch (git checkout -b feat/your-feature).
125
- Write tests (the project uses pytest).
126
- Ensure all tests pass (pytest).
127
- Update documentation if you add new functionality.
128
- Submit a Pull Request with a clear description of the changes.
124
+ 1. Fork the repo and create a feature branch (git checkout -b feat/your-feature).
125
+ 2. Write tests (the project uses pytest).
126
+ 3. Ensure all tests pass (pytest).
127
+ 4. Update documentation if you add new functionality.
128
+ 5. Submit a Pull Request with a clear description of the changes.
129
129
 
130
130
 
131
131
  See CONTRIBUTING.md for detailed guidelines.
@@ -0,0 +1,2 @@
1
+
2
+ ::: hypershap.games
@@ -0,0 +1,2 @@
1
+
2
+ ::: hypershap.hypershap
@@ -0,0 +1,2 @@
1
+
2
+ ::: hypershap.surrogate_model
@@ -0,0 +1,2 @@
1
+
2
+ ::: hypershap.task
@@ -0,0 +1,2 @@
1
+
2
+ ::: hypershap.utils
@@ -0,0 +1,9 @@
1
+ # Authors
2
+
3
+ ## Core Development
4
+
5
+ - [Marcel Wever](https://www.marcelwever.de){target="_blank"}
6
+
7
+ ## Contributions
8
+ - [Maximilian Muschalik](https://maxmuschalik.com/){target="_blank"}
9
+ - [Fabian Fumagalli](https://fabianfumagalli.com/){target="_blank"}
@@ -0,0 +1,25 @@
1
+ # Cite HyperSHAP
2
+
3
+ If you use HyperSHAP in your research, please cite the original paper:
4
+
5
+
6
+ ## Citation String
7
+ Wever et al., (2025). HyperSHAP: Shapley Values and Interactions for Hyperparameter Importance. CoRR, abs/2502.01276, https://doi.org/10.48550/ARXIV.2502.01276.
8
+
9
+
10
+ ## Bibtex
11
+ ```bibtex
12
+ @article{wever-arxiv25,
13
+ author = {Marcel Wever and
14
+ Maximilian Muschalik and
15
+ Fabian Fumagalli and
16
+ Marius Lindauer},
17
+ title = {HyperSHAP: Shapley Values and Interactions for Hyperparameter Importance},
18
+ journal = {CoRR},
19
+ volume = {abs/2502.01276},
20
+ year = {2025},
21
+ doi = {10.48550/ARXIV.2502.01276},
22
+ }
23
+ ```
24
+
25
+ The paper introduces the underlying game-theoretic framework and demonstrates its usefulness for HPO explainability.
@@ -0,0 +1,126 @@
1
+ # How to Contribute
2
+
3
+ Contributions are welcome, and they are greatly appreciated!
4
+ Every little bit helps, and credit will always be given.
5
+
6
+ You can contribute in many ways:
7
+
8
+ # Types of Contributions
9
+
10
+ ## Report Bugs
11
+
12
+ Report bugs at https://github.com/automl/HyperSHAP/issues
13
+
14
+ If you are reporting a bug, please include:
15
+
16
+ - Your operating system name and version.
17
+ - Any details about your local setup that might be helpful in troubleshooting.
18
+ - Detailed steps to reproduce the bug.
19
+
20
+ ## Fix Bugs
21
+
22
+ Look through the GitHub issues for bugs.
23
+ Anything tagged with "bug" and "help wanted" is open to whoever wants to implement a fix for it.
24
+
25
+ ## Implement Features
26
+
27
+ Look through the GitHub issues for features.
28
+ Anything tagged with "enhancement" and "help wanted" is open to whoever wants to implement it.
29
+
30
+ ## Write Documentation
31
+
32
+ HyperSHAP could always use more documentation, whether as part of the official docs, in docstrings, or even on the web in blog posts, articles, and such.
33
+
34
+ ## Submit Feedback
35
+
36
+ The best way to send feedback is to file an issue at https://github.com/automl/HyperSHAP/issues.
37
+
38
+ If you are proposing a new feature:
39
+
40
+ - Explain in detail how it would work.
41
+ - Keep the scope as narrow as possible, to make it easier to implement.
42
+ - Remember that this is a volunteer-driven project, and that contributions
43
+ are welcome :)
44
+
45
+ # Get Started!
46
+
47
+ Ready to contribute? Here's how to set up `HyperSHAP` for local development.
48
+ Please note this documentation assumes you already have `uv` and `Git` installed and ready to go.
49
+
50
+ 1. Fork the `HyperSHAP` repo on GitHub.
51
+
52
+ 2. Clone your fork locally:
53
+
54
+ ```bash
55
+ cd <directory_in_which_repo_should_be_created>
56
+ git clone git@github.com:YOUR_NAME/HyperSHAP.git
57
+ ```
58
+
59
+ 3. Now we need to install the environment. Navigate into the directory
60
+
61
+ ```bash
62
+ cd HyperSHAP
63
+ ```
64
+
65
+ Then, install and activate the environment with:
66
+
67
+ ```bash
68
+ uv sync
69
+ ```
70
+
71
+ 4. Install pre-commit to run linters/formatters at commit time:
72
+
73
+ ```bash
74
+ uv run pre-commit install
75
+ ```
76
+
77
+ 5. Create a branch for local development:
78
+
79
+ ```bash
80
+ git checkout -b name-of-your-bugfix-or-feature
81
+ ```
82
+
83
+ Now you can make your changes locally.
84
+
85
+ 6. Don't forget to add test cases for your added functionality to the `tests` directory.
86
+
87
+ 7. When you're done making changes, check that your changes pass the formatting tests.
88
+
89
+ ```bash
90
+ make check
91
+ ```
92
+
93
+ Now, validate that all unit tests are passing:
94
+
95
+ ```bash
96
+ make test
97
+ ```
98
+
99
+ 9. Before raising a pull request you should also run tox.
100
+ This will run the tests across different versions of Python:
101
+
102
+ ```bash
103
+ tox
104
+ ```
105
+
106
+ This requires you to have multiple versions of python installed.
107
+ This step is also triggered in the CI/CD pipeline, so you could also choose to skip this step locally.
108
+
109
+ 10. Commit your changes and push your branch to GitHub:
110
+
111
+ ```bash
112
+ git add .
113
+ git commit -m "Your detailed description of your changes."
114
+ git push origin name-of-your-bugfix-or-feature
115
+ ```
116
+
117
+ 11. Submit a pull request through the GitHub website.
118
+
119
+ # Pull Request Guidelines
120
+
121
+ Before you submit a pull request, check that it meets these guidelines:
122
+
123
+ 1. The pull request should include tests.
124
+
125
+ 2. If the pull request adds functionality, the docs should be updated.
126
+ Put your new functionality into a function with a docstring, and add the feature to the list in `README.md`.
@@ -0,0 +1,48 @@
1
+ # Getting Started
2
+
3
+ ## Installation
4
+
5
+ The `HyperSHAP` package can be easily installed via PyPI:
6
+
7
+ ```bash
8
+ pip install hypershap
9
+ ```
10
+
11
+ Alternatively, one can clone the GitHub repository and install hypershap via the following command:
12
+
13
+ ```bash
14
+ make install
15
+ ```
16
+
17
+ ## General Usage
18
+
19
+ Given an existing setup with a ConfigurationSpace from the [ConfigSpace package](https://github.com/automl/ConfigSpace) and black-box function as follows:
20
+ ```Python
21
+ from ConfigSpace import ConfigurationSpace, Configuration
22
+
23
+ # ConfigurationSpace describing the hyperparameter space
24
+ cs = ConfigurationSpace()
25
+ ...
26
+
27
+ # A black-box function, evaluating ConfigSpace.Configuration objects
28
+ def blackbox_function(cfg: Configuration) -> float:
29
+ ...
30
+ ```
31
+
32
+ You can use HyperSHAP as follows:
33
+ ```Python
34
+ from hypershap import ExplanationTask, HyperSHAP
35
+
36
+ # Instantiate HyperSHAP
37
+ hypershap = HyperSHAP(ExplanationTask.from_function(config_space=cs,function=blackbox_function))
38
+ # Conduct tunability analysis
39
+ hypershap.tunability(baseline_config=cs.get_default_configuration())
40
+ # Plot results as a Shapley Interaction graph
41
+ hypershap.plot_si_graph()
42
+ ```
43
+
44
+ The example demonstrates how to:
45
+
46
+ 1. Wrap a black-box function in an explanation task.
47
+ 2. Use `HyperSHAP` to obtain interaction values for the **tunability** game.
48
+ 3. Plot the corresponding SI-graph.
@@ -0,0 +1,7 @@
1
+ # Need help?
2
+
3
+ Do you have further questions or a problem with `HyperSHAP` and do not know how to continue?
4
+
5
+ 1. Check the [examples](https://github.com/automl/HyperSHAP/tree/main/examples), maybe you can find a suitable solution.
6
+ 2. Check the [GitHub issues](https://github.com/automl/hypershap/issues), maybe someone else has been in a similar situation already.
7
+ 3. If you could not find anything related, please [create a help issue](https://github.com/automl/hypershap/issues).
@@ -0,0 +1,34 @@
1
+ # Welcome to HyperSHAP's documentation! <img src="https://raw.githubusercontent.com/automl/hypershap/main/docs/source/_static/logo/hypershap-logo.png" alt="HyperSHAP Logo" align="right" height="200px"/>
2
+
3
+ [![Release](https://img.shields.io/github/v/release/automl/HyperSHAP)](https://img.shields.io/github/v/release/automl/hypershap)
4
+ [![Build status](https://img.shields.io/github/actions/workflow/status/automl/hypershap/main.yml?branch=main)](https://github.com/automl/hypershap/actions/workflows/main.yml?query=branch%3Amain)
5
+ [![Coverage Status](https://coveralls.io/repos/github/automl/HyperSHAP/badge.svg?branch=dev)](https://coveralls.io/github/automl/HyperSHAP?branch=dev)
6
+ [![Commit activity](https://img.shields.io/github/commit-activity/m/automl/hypershap)](https://img.shields.io/github/commit-activity/m/automl/hypershap)
7
+ [![License](https://img.shields.io/github/license/automl/hypershap)](https://img.shields.io/github/license/automl/hypershap)
8
+
9
+
10
+ `HyperSHAP` is a framework to explain the outcomes of hyperparameter optimization (HPO) by leveraging cooperative game theory concepts such as Shapley values and interaction indices. It is designed to provide actionable insights into the role and interplay of hyperparameters, thereby reducing the manual effort typically required to interpret HPO results. While its primary audience is researchers and practitioners in machine learning and artificial intelligence, its use is not restricted to these target groups.
11
+
12
+ The analysis of HPO results often involves comparing tuned configurations, assessing hyperparameter importance, and identifying optimizer biases. These tasks are typically performed in an ad-hoc and dataset-specific manner, requiring extensive manual inspection of results. Moreover, existing approaches often lack the ability to systematically capture interactions among hyperparameters or to generalize explanations across datasets and optimizers.
13
+
14
+ `HyperSHAP` addresses these challenges by formulating HPO explanations as cooperative games, where hyperparameters form coalitions whose contributions to performance are quantified. This unified framework enables fine-grained analyses, such as ablation studies, sensitivity attribution, tunability assessment, and optimizer behavior characterization. All computations are naturally parallelizable, making `HyperSHAP` scalable to modern HPO scenarios. By automating and standardizing the generation of interpretable explanations, `HyperSHAP` alleviates much of the overhead in analyzing HPO results and provides practitioners with clear guidance on which hyperparameters to focus on and how optimizers behave across tasks.
15
+
16
+ - **Github repository**: <https://github.com/automl/hypershap/>
17
+
18
+
19
+ ## Features
20
+ - **Additive Shapley decomposition** of any performance metric across hyper‑parameters.
21
+ - **Interaction analysis** via the Faithful Shapley Interaction Index (FSII).
22
+ - Ready‑made explanation tasks for **Ablation**, **Tunability**, and **Optimizer Bias** studies.
23
+ - Integrated **visualisation** (SI‑graph) for interaction effects.
24
+ - Works with any surrogate model that follows the `ExplanationTask` interface.
25
+
26
+ ---
27
+
28
+ ## Acknowledgements
29
+ This work was partially supported by the European Union (ERC, “ixAutoML”, grant no.101041029).
30
+
31
+
32
+ ---
33
+
34
+ **Enjoy exploring your HPO pipelines with HyperSHAP!** 🎉
@@ -0,0 +1,8 @@
1
+ # License
2
+
3
+ This program is free software: you can redistribute it and/or modify it under the terms of the 3-clause BSD license
4
+ (please see the [LICENSE](https://github.com/automl/HyperSHAP/blob/main/LICENSE) file).
5
+ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
6
+ without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7
+ You should have received a copy of the 3-clause BSD license along with this program
8
+ (see [LICENSE](https://github.com/automl/HyperSHAP/blob/main/LICENSE) file). If not, see [BSD-3-Clause license](https://opensource.org/license/BSD-3-Clause).