You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* update version
* ran first notebooks
* ran core
* add jupyter to dependencies
* ran long notebooks
* ran notebooks
* ran sklearn
* ran tabpfn
* ran remaining notebooks
* updated contribution page to include uv and some details about different changes
This document outlines the guidelines for contributing to the project. It should enable contributors
4
-
to understand the process for applying changes to the project and how to interact with the community.
3
+
This document outlines how to easily contribute to the project.
5
4
For the code of conduct, please refer to the [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
6
5
7
6
## 🗺️ What to Work On
8
-
First, we welcome contributions from everyone in every form. If you feel that something is missing
9
-
or could be improved, feel free to change it. However, to streamline the process of contributing
10
-
higher-tier changes or features to the project, we maintain an open
11
-
[roadmap](https://github.com/users/mmschlk/projects/4/views/4). There, we collect ideas and features
12
-
that we want to add to the project. If you want to work on something, please check the roadmap first
13
-
to see if the feature is already planned or if there is a similar feature that you could contribute
14
-
to.
15
-
16
-
### 🙏 Discussions
7
+
First, we welcome contributions **from everyone** in **every form**. If you feel that something is
8
+
missing or could be improved, feel free to change it. However, to streamline the process of
9
+
contributing higher-tier changes or features to the project, we maintain an open
10
+
[roadmap](https://github.com/users/mmschlk/projects/4/views/4) which is just storing all the ideas
11
+
and problems found on shapiq's [issues page](https://github.com/mmschlk/shapiq/issues). If you want
12
+
to work on something, check out the roadmap or issues first to see if the feature is already
13
+
planned or if there is a similar feature that you could contribute to.
14
+
15
+
Here are some examples of what we are very happy to receive contributions for:
16
+
17
+
### Approximators
18
+
We are always looking for new approximators to add to `shapiq`. Approximators are always extending
19
+
the base class `Approximator` and implementing `approximate` method. Make sure to create unit tests
20
+
for the new approximator.
21
+
22
+
### Explainers
23
+
If you want to add a new explainer, you can extend the base class `Explainer` and implement the
24
+
`explain_function` method. Make sure to create unit tests for the new explainer. Note that
25
+
explainers are quite elaborate, so it is a very good idea to open a discussion before starting to
26
+
work on a new explainer.
27
+
28
+
### Model Support
29
+
You like a particular machine learning model and it is not yet supported by `shapiq`? Maybe you can
30
+
add support in the [transformation code](https://github.com/mmschlk/shapiq/blob/56e1ea4a41d185b8364ca8e6370a01646dd792c6/shapiq/explainer/utils.py#L1) or [tree/validation](https://github.com/mmschlk/shapiq/blob/56e1ea4a41d185b8364ca8e6370a01646dd792c6/shapiq/explainer/tree/validation.py).
31
+
Make sure to add tests for the new model as part of the unit tests (you can find the tests of the
32
+
other model types).
33
+
34
+
### Visualizations
35
+
If you have a nice idea to visualize Shapley values or Shapley interaction values, you can add a new
36
+
visualization to the `shapiq.plot` package. Make sure that plots are also available through the
37
+
`InteractionValues` object like the other plots (e.g. `InteractionValues.plot_force`). Make sure to
38
+
add tests for the new visualization.
39
+
40
+
### 🙏 Discussions and Issues
17
41
If you have an idea for a new feature or a change, we encourage everyone to open a discussion in the
Copy file name to clipboardexpand all lines: CHANGELOG.md
+3-1
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,9 @@
1
1
## Changelog
2
2
3
3
### Development
4
+
5
+
### v1.2.3 (2025-03-24)
6
+
- substantially improves the runtime of all `Regression` approximators by a) a faster pre-computation of the regression matrices and b) a faster computation of the weighted least squares regression [#340](https://github.com/mmschlk/shapiq/issues/340)
4
7
- removes `sample_replacements` parameter from `MarginalImputer` and removes the DeprecationWarning for it
5
8
- adds a trivial computation to `TreeSHAP-IQ` for trees that use only one feature in the tree (this works for decision stumps or trees splitting on only one feature multiple times). In such trees, the computation is trivial as the whole effect of $\nu(N) - \nu(\emptyset)$ is all on the main effect of the single feature and there is no interaction effect. This expands on the fix in v1.2.1 [#286](https://github.com/mmschlk/shapiq/issues/286).
6
9
- fixes a bug with xgboost where feature names where trees that did not contain all features would lead `TreeExplainer` to fail
@@ -9,7 +12,6 @@
9
12
- updates default value of `TreeExplainer`'s `min_order` parameter from 1 to 0 to include the baseline value in the interaction values as per default
10
13
- adds the `RegressionFBII` approximator to estimate Faithful Banzhaf interactions via least squares regression [#333](https://github.com/mmschlk/shapiq/pull/333). Additionally, FBII support was introduced in TabularExplainer and MonteCarlo-Approximator.
11
14
- adds a `RandomGame` class as part of `shapiq.games.benchmark` which always returns a random vector of integers between 0 and 100.
12
-
- substantially improves the runtime of all `Regression` approximators by a) a faster pre-computation of the regression matrices and b) a faster computation of the weighted least squares regression [#340](https://github.com/mmschlk/shapiq/issues/340)
13
15
14
16
### v1.2.2 (2025-03-11)
15
17
- changes python support to 3.10-3.13 [#318](https://github.com/mmschlk/shapiq/pull/318)
0 commit comments