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
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
[Discussions](https://github.com/mmschlk/shapiq/discussions/new/choose) section or open an [issues](https://github.com/mmschlk/shapiq/issues).
19
43
We encourage you to open a discussion so that we can align on the work to be done. It's generally a
20
44
good idea to have a quick discussion before opening a pull request that is potentially out-of-scope.
0 commit comments