Metadata-Version: 2.1
Name: TSInterpret
Version: 0.0.11
Summary: todo
Home-page: https://ipe-wim-gitlab.fzi.de/hoellig/interpretabilitytimeseries
Author: Jacqueline Hoellig
Author-email: hoellig@fzi.de
License: BSD-3
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: h5py
Requires-Dist: joblib (==1.0.1)
Requires-Dist: kaggle (==1.5.12)
Requires-Dist: lime (==0.2.0.1)
Requires-Dist: Markdown (==3.3.4)
Requires-Dist: matplotlib (==3.3.4)
Requires-Dist: pandas (==1.1.5)
Requires-Dist: partd (==1.2.0)
Requires-Dist: pytz (==2021.3)
Requires-Dist: scikit-learn (==0.24.2)
Requires-Dist: shap (==0.39.0)
Requires-Dist: tqdm (==4.62.3)
Requires-Dist: tsfresh (==0.18.0)
Requires-Dist: wildboar (==1.0.10)
Requires-Dist: tslearn
Requires-Dist: seaborn
Requires-Dist: scikit-optimize
Requires-Dist: mlrose
Requires-Dist: torchcam
Requires-Dist: tf-explain
Requires-Dist: opencv-python
Requires-Dist: captum
Requires-Dist: pyts
Requires-Dist: deprecated
Requires-Dist: dataclasses ; python_version == '3.7'
Provides-Extra: all
Requires-Dist: h5py ; extra == 'all'
Requires-Dist: joblib (==1.0.1) ; extra == 'all'
Requires-Dist: kaggle (==1.5.12) ; extra == 'all'
Requires-Dist: lime (==0.2.0.1) ; extra == 'all'
Requires-Dist: Markdown (==3.3.4) ; extra == 'all'
Requires-Dist: matplotlib (==3.3.4) ; extra == 'all'
Requires-Dist: pandas (==1.1.5) ; extra == 'all'
Requires-Dist: partd (==1.2.0) ; extra == 'all'
Requires-Dist: pytz (==2021.3) ; extra == 'all'
Requires-Dist: scikit-learn (==0.24.2) ; extra == 'all'
Requires-Dist: shap (==0.39.0) ; extra == 'all'
Requires-Dist: tqdm (==4.62.3) ; extra == 'all'
Requires-Dist: tsfresh (==0.18.0) ; extra == 'all'
Requires-Dist: wildboar (==1.0.10) ; extra == 'all'
Requires-Dist: tslearn ; extra == 'all'
Requires-Dist: seaborn ; extra == 'all'
Requires-Dist: scikit-optimize ; extra == 'all'
Requires-Dist: mlrose ; extra == 'all'
Requires-Dist: torchcam ; extra == 'all'
Requires-Dist: tf-explain ; extra == 'all'
Requires-Dist: opencv-python ; extra == 'all'
Requires-Dist: captum ; extra == 'all'
Requires-Dist: pyts ; extra == 'all'
Requires-Dist: deprecated ; extra == 'all'
Requires-Dist: mypy (>=0.761) ; extra == 'all'
Requires-Dist: pre-commit (>=2.9.2) ; extra == 'all'
Requires-Dist: pytest (>=4.5.0) ; extra == 'all'
Requires-Dist: pytest-cov (>=2.6.1) ; extra == 'all'
Provides-Extra: dev
Requires-Dist: h5py ; extra == 'dev'
Requires-Dist: joblib (==1.0.1) ; extra == 'dev'
Requires-Dist: kaggle (==1.5.12) ; extra == 'dev'
Requires-Dist: lime (==0.2.0.1) ; extra == 'dev'
Requires-Dist: Markdown (==3.3.4) ; extra == 'dev'
Requires-Dist: matplotlib (==3.3.4) ; extra == 'dev'
Requires-Dist: pandas (==1.1.5) ; extra == 'dev'
Requires-Dist: partd (==1.2.0) ; extra == 'dev'
Requires-Dist: pytz (==2021.3) ; extra == 'dev'
Requires-Dist: scikit-learn (==0.24.2) ; extra == 'dev'
Requires-Dist: shap (==0.39.0) ; extra == 'dev'
Requires-Dist: tqdm (==4.62.3) ; extra == 'dev'
Requires-Dist: tsfresh (==0.18.0) ; extra == 'dev'
Requires-Dist: wildboar (==1.0.10) ; extra == 'dev'
Requires-Dist: tslearn ; extra == 'dev'
Requires-Dist: seaborn ; extra == 'dev'
Requires-Dist: scikit-optimize ; extra == 'dev'
Requires-Dist: mlrose ; extra == 'dev'
Requires-Dist: torchcam ; extra == 'dev'
Requires-Dist: tf-explain ; extra == 'dev'
Requires-Dist: opencv-python ; extra == 'dev'
Requires-Dist: captum ; extra == 'dev'
Requires-Dist: pyts ; extra == 'dev'
Requires-Dist: deprecated ; extra == 'dev'
Requires-Dist: mypy (>=0.761) ; extra == 'dev'
Requires-Dist: pre-commit (>=2.9.2) ; extra == 'dev'
Requires-Dist: pytest (>=4.5.0) ; extra == 'dev'
Requires-Dist: pytest-cov (>=2.6.1) ; extra == 'dev'
Provides-Extra: docs
Requires-Dist: flask (==2.0.2) ; extra == 'docs'
Requires-Dist: ipykernel (==6.9.0) ; extra == 'docs'
Requires-Dist: mike (==0.5.3) ; extra == 'docs'
Requires-Dist: mkdocs (==1.2.3) ; extra == 'docs'
Requires-Dist: mkdocs-awesome-pages-plugin (==2.7.0) ; extra == 'docs'
Requires-Dist: mkdocs-material (==8.1.11) ; extra == 'docs'
Requires-Dist: mkdocstrings (==0.18.0) ; extra == 'docs'
Requires-Dist: mkdocs-material-extensions ; extra == 'docs'
Requires-Dist: mkdocs-autorefs ; extra == 'docs'
Requires-Dist: ipython-genutils (==0.1.0) ; extra == 'docs'
Requires-Dist: mkdocs-jupyter (==0.20.0) ; extra == 'docs'
Requires-Dist: mkdocs-bibtex (==2.8.1) ; extra == 'docs'
Requires-Dist: nbconvert (==6.4.2) ; extra == 'docs'
Requires-Dist: numpydoc (==1.2) ; extra == 'docs'
Requires-Dist: spacy (==3.2.2) ; extra == 'docs'
Requires-Dist: jinja2 (==3.0.3) ; extra == 'docs'
Provides-Extra: tensorflow
Requires-Dist: h5py ; extra == 'tensorflow'
Requires-Dist: joblib (==1.0.1) ; extra == 'tensorflow'
Requires-Dist: kaggle (==1.5.12) ; extra == 'tensorflow'
Requires-Dist: lime (==0.2.0.1) ; extra == 'tensorflow'
Requires-Dist: Markdown (==3.3.4) ; extra == 'tensorflow'
Requires-Dist: matplotlib (==3.3.4) ; extra == 'tensorflow'
Requires-Dist: pandas (==1.1.5) ; extra == 'tensorflow'
Requires-Dist: partd (==1.2.0) ; extra == 'tensorflow'
Requires-Dist: pytz (==2021.3) ; extra == 'tensorflow'
Requires-Dist: scikit-learn (==0.24.2) ; extra == 'tensorflow'
Requires-Dist: shap (==0.39.0) ; extra == 'tensorflow'
Requires-Dist: tqdm (==4.62.3) ; extra == 'tensorflow'
Requires-Dist: tsfresh (==0.18.0) ; extra == 'tensorflow'
Requires-Dist: wildboar (==1.0.10) ; extra == 'tensorflow'
Requires-Dist: tslearn ; extra == 'tensorflow'
Requires-Dist: seaborn ; extra == 'tensorflow'
Requires-Dist: scikit-optimize ; extra == 'tensorflow'
Requires-Dist: mlrose ; extra == 'tensorflow'
Requires-Dist: torchcam ; extra == 'tensorflow'
Requires-Dist: tf-explain ; extra == 'tensorflow'
Requires-Dist: opencv-python ; extra == 'tensorflow'
Requires-Dist: captum ; extra == 'tensorflow'
Requires-Dist: pyts ; extra == 'tensorflow'
Requires-Dist: deprecated ; extra == 'tensorflow'
Requires-Dist: tensorflow ; extra == 'tensorflow'
Provides-Extra: test
Requires-Dist: h5py ; extra == 'test'
Requires-Dist: joblib (==1.0.1) ; extra == 'test'
Requires-Dist: kaggle (==1.5.12) ; extra == 'test'
Requires-Dist: lime (==0.2.0.1) ; extra == 'test'
Requires-Dist: Markdown (==3.3.4) ; extra == 'test'
Requires-Dist: matplotlib (==3.3.4) ; extra == 'test'
Requires-Dist: pandas (==1.1.5) ; extra == 'test'
Requires-Dist: partd (==1.2.0) ; extra == 'test'
Requires-Dist: pytz (==2021.3) ; extra == 'test'
Requires-Dist: scikit-learn (==0.24.2) ; extra == 'test'
Requires-Dist: shap (==0.39.0) ; extra == 'test'
Requires-Dist: tqdm (==4.62.3) ; extra == 'test'
Requires-Dist: tsfresh (==0.18.0) ; extra == 'test'
Requires-Dist: wildboar (==1.0.10) ; extra == 'test'
Requires-Dist: tslearn ; extra == 'test'
Requires-Dist: seaborn ; extra == 'test'
Requires-Dist: scikit-optimize ; extra == 'test'
Requires-Dist: mlrose ; extra == 'test'
Requires-Dist: torchcam ; extra == 'test'
Requires-Dist: tf-explain ; extra == 'test'
Requires-Dist: opencv-python ; extra == 'test'
Requires-Dist: captum ; extra == 'test'
Requires-Dist: pyts ; extra == 'test'
Requires-Dist: deprecated ; extra == 'test'
Requires-Dist: mypy (>=0.761) ; extra == 'test'
Requires-Dist: pre-commit (>=2.9.2) ; extra == 'test'
Requires-Dist: pytest (>=4.5.0) ; extra == 'test'
Requires-Dist: pytest-cov (>=2.6.1) ; extra == 'test'
Provides-Extra: torch
Requires-Dist: h5py ; extra == 'torch'
Requires-Dist: joblib (==1.0.1) ; extra == 'torch'
Requires-Dist: kaggle (==1.5.12) ; extra == 'torch'
Requires-Dist: lime (==0.2.0.1) ; extra == 'torch'
Requires-Dist: Markdown (==3.3.4) ; extra == 'torch'
Requires-Dist: matplotlib (==3.3.4) ; extra == 'torch'
Requires-Dist: pandas (==1.1.5) ; extra == 'torch'
Requires-Dist: partd (==1.2.0) ; extra == 'torch'
Requires-Dist: pytz (==2021.3) ; extra == 'torch'
Requires-Dist: scikit-learn (==0.24.2) ; extra == 'torch'
Requires-Dist: shap (==0.39.0) ; extra == 'torch'
Requires-Dist: tqdm (==4.62.3) ; extra == 'torch'
Requires-Dist: tsfresh (==0.18.0) ; extra == 'torch'
Requires-Dist: wildboar (==1.0.10) ; extra == 'torch'
Requires-Dist: tslearn ; extra == 'torch'
Requires-Dist: seaborn ; extra == 'torch'
Requires-Dist: scikit-optimize ; extra == 'torch'
Requires-Dist: mlrose ; extra == 'torch'
Requires-Dist: torchcam ; extra == 'torch'
Requires-Dist: tf-explain ; extra == 'torch'
Requires-Dist: opencv-python ; extra == 'torch'
Requires-Dist: captum ; extra == 'torch'
Requires-Dist: pyts ; extra == 'torch'
Requires-Dist: deprecated ; extra == 'torch'
Requires-Dist: torch ; extra == 'torch'


# TSInterpret

TSInterpret is a Python library for interpreting time series classification.
The ambition is to faciliate the usage of times series interpretability methods. 

## 💈 Installation
```shell
pip install TSInterpret
```
You can install the latest development version from GitHub as so:
```shell
pip install https://github.com/jhoelli/TSInterpret.git --upgrade
```

Or, through SSH:
```shell
pip install git@github.com:jhoelli/TSInterpret.git --upgrade
```


## 🍫 Quickstart
The following example creates a simple Supported Vector Classifer based on tslearn and interprets the Classfier by creating a counterfactual.
For further examples check out the <a href="">Documentation</a>.

### Import
```python
import pickle
import numpy as np 
import matplotlib.pyplot as plt
import seaborn as snst
from tslearn.datasets import UCR_UEA_datasets
import tensorflow as tf 

```
### Create Classifcation Model
```python

dataset='BasicMotions'
train_x,train_y, test_x, test_y=UCR_UEA_datasets().load_dataset(dataset)
enc1=pickle.load(open(f'../../ClassificationModels/models/{dataset}/OneHotEncoder.pkl','rb'))
train_y=enc1.transform(train_y.reshape(-1,1))
test_y=enc1.transform(test_y.reshape(-1,1))
model_to_explain = tf.keras.models.load_model(f'../../ClassificationModels/models/{dataset}/cnn/{dataset}best_model.hdf5')
```
Explain & Visualize Model
```python
from TSInterpret.InterpretabilityModels.Saliency.SaliencyMethods_TF import Saliency_TF
int_mod=Saliency_TF(model_to_explain, train_x.shape[-2],train_x.shape[-1], method='IG',mode='time')
item= np.array([test_x[0,:,:]])
label=int(np.argmax(test_y[0]))

exp=int_mod.explain(item,labels=label,TSR =True)

%matplotlib inline  
int_mod.plot(np.array([test_x[0,:,:]]),exp)

```
<p align="center">
    <img src="./docs/img/ReadMe.png" alt="Algorithm Results" height="200"/>
</p>

## 🏫 Affiliations
<p align="center">
    <img src="https://upload.wikimedia.org/wikipedia/de/thumb/4/44/Fzi_logo.svg/1200px-Fzi_logo.svg.png?raw=true" alt="FZI Logo" height="200"/>
</p>

## Aknowledgement
