Basic usage examples

For full examples on two illustrative cases go to:
  • Example of extracting sine wave prototype and explaining class with existence ora absence of a prototype: Jupyter Notebook

  • Example of extracting sine wave as a prototype end explaining class by difference in frequency of a prototype Jupyter Notebook

The basic usage of the TSProto assuming you have your model trained is straightforward:

from tsproto.models import *
from tsproto.utils import *

#assuming that trainX, trainy and model are given

pe = PrototypeEncoder(clf, n_clusters=2, min_size=50, method='dtw',
                      descriptors=['existance'],
                      jump=1, pen=1,multiplier=None,n_jobs=-1,
                      verbose=1)

trainX, shapclass = getshap(model=model, X=trainX, y=trainy,shap_version='deep',
                        bg_size = 1000,  absshap = True)

#The input needs to be a 3D vector: number of samples, lenght of time-series, number of dimensions (features)
trainXproto = train.reshape((trainX.shape[0], trainX.shape[1],1))
shapclassXproto = shapclass.reshape((shapclass.shape[0], shapclass.shape[1],1))

ohe_train, features, target_ohe,weights = pe.fit_transform(trainXproto,shapclassXproto)

im  = InterpretableModel()
acc,prec,rec,f1,interpretable_model = im.fit_or_predict(ohe_train, features,
                        target_ohe,
                        intclf=None, # if intclf is given, the funciton behaves as predict,
                        verbose=0, max_depth=2, min_samples_leaf=0.05,
                        weights=None)

After the Interpretable model has been created it now can be visualised.

Illustrative example