ixai: Incremental Explainable Artificial Intelligence
This is the first iteration of our incremental explanation package.
Currently, it includes two explanation methods: PFI and SAGE.
Please look at the examples in the examples directory.
Please help us in improving our work by contributing or pointing to issues. We will update this iteration soon with further information.
🛠 Installation
ixai is intended to work with Python 3.8 and above. Installation can be done via pip:
pip install ixai
📊 Quickstart
Basic Classification
>>> from river.metrics import Accuracy
>>> from river.ensemble import AdaptiveRandomForestClassifier
>>> from river.datasets.synth import Agrawal
>>> from ixai.explainer import IncrementalPFI
>>> stream = Agrawal(classification_function=2)
>>> feature_names = list([x_0 for x_0, _ in stream.take(1)][0].keys())
>>> model = AdaptiveRandomForestClassifier(n_models=10, max_depth=10, leaf_prediction='mc')
>>> incremental_pfi = IncrementalPFI(
... model_function=model.predict_one,
... loss_function=Accuracy(),
... feature_names=feature_names,
... smoothing_alpha=0.001,
... n_inner_samples=5
... )
>>> training_metric = Accuracy()
>>> for (n, (x, y)) in enumerate(stream, start=1)
... y_pred = model.predict_one(x) # inference
... training_metric.update(y, y_pred) # update score
... incremental_pfi.explain_one(x, y) # explaining
... model.learn_one(x, y) # learning
... if n % 1000 == 0:
... print(f"{n}: Accuracy: {training_metric.get():.3f}, PFI: {incremental_pfi.importance_values}")
1000: Accuracy: 0.785, PFI: {'age': 0.22, 'elevel': 0.18, 'zipcode': -0.07, 'salary': 0.04, 'commission': 0.05, 'loan': -0.06, 'car': 0.02, 'hyears': 0.03, 'hvalue': 0.03}
2000: Accuracy: 0.841, PFI: {'age': 0.26, 'elevel': 0.21, 'zipcode': -0.01, 'salary': 0.02, 'commission': 0.03, 'loan': -0.02, 'car': 0.02, 'hyears': 0.04, 'hvalue': 0.02}
3000: Accuracy: 0.921, PFI: {'age': 0.28, 'elevel': 0.24, 'zipcode': -0.00, 'salary': 0.00, 'commission': 0.01, 'loan': -0.01, 'car': 0.01, 'hyears': 0.01, 'hvalue': 0.00}
Release files for ixai 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ixai-0.1.3.tar.gz | 30.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ixai-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.0 kB
Release files / ixai-0.1.3.tar.gz
| Download URL | ixai-0.1.3.tar.gz |
|---|---|
| Size | 30.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a91b62bb106c66aa01829665189e28dd78242c00102048c3c5c55a58959c3902
|
|
BLAKE2b-256 checksum How to use checksums |
13ddd40dc8e088706df2dcfd209caf45919a5969e571cc75e3b3d6adacf53f6c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|
Release files / ixai-0.1.3-py3-none-any.whl
| Download URL | ixai-0.1.3-py3-none-any.whl |
|---|---|
| Size | 46.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa9fb4cda178d642ad5929d36a45752cef367150c64128ebf8c43adf9619eed7
|
|
BLAKE2b-256 checksum How to use checksums |
477cd44a59ff2c423e25fd797e3ee48cb60926b7dc927c489192ccecaaf2ee88
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.9.16
|