xailib.models package
Submodules
xailib.models.bbox module
Abstract base class for black-box model wrappers.
This module defines the AbstractBBox interface that all model
wrappers must implement. Model wrappers provide a unified API for
interacting with machine learning models from different frameworks
(scikit-learn, Keras, PyTorch, etc.).
- Classes:
AbstractBBox: Abstract base class for black-box model wrappers.
Example
Creating a custom model wrapper:
from xailib.models.bbox import AbstractBBox
class MyModelWrapper(AbstractBBox):
def __init__(self, model):
super().__init__()
self.model = model
def predict(self, X):
return self.model.predict(X)
def predict_proba(self, X):
return self.model.predict_proba(X)
See also
xailib.models.sklearn_classifier_wrapper.sklearn_classifier_wrapper
xailib.models.keras_classifier_wrapper.KerasClassifierWrapper
xailib.models.pytorch_classifier_wrapper.PytorchClassifierWrapper
- class xailib.models.bbox.AbstractBBox[source]
Bases:
ABCAbstract base class for black-box model wrappers.
This class defines the interface that all model wrappers must implement. Wrappers provide a consistent API for explainers to interact with different types of machine learning models.
All explainers in XAI-Lib expect models to be wrapped using a class that inherits from AbstractBBox.
- Defined by subclasses. Common attributes include the wrapped model
- and any preprocessing functions.
Example
>>> from xailib.models.sklearn_classifier_wrapper import sklearn_classifier_wrapper >>> from sklearn.ensemble import RandomForestClassifier >>> rf = RandomForestClassifier() >>> rf.fit(X_train, y_train) >>> bb = sklearn_classifier_wrapper(rf) >>> predictions = bb.predict(X_test)
- abstract predict(X)[source]
Make predictions for input instances.
- Parameters:
X – Input features. The format depends on the model type: - For tabular models: numpy array of shape (n_samples, n_features) - For image models: numpy array of images - For text models: list of strings
- Returns:
- Predicted class labels for classification,
or predicted values for regression.
- Return type:
- abstract predict_proba(X)[source]
Get prediction probabilities for input instances.
- Parameters:
X – Input features in the same format as
predict().- Returns:
- Predicted class probabilities of shape
(n_samples, n_classes) for classification models.
- Return type:
- Raises:
NotImplementedError – If the underlying model does not support probability predictions.
xailib.models.keras_classifier_wrapper module
Keras classifier wrapper for XAI-Lib.
This module provides a wrapper class for Keras/TensorFlow classifiers, allowing them to be used with XAI-Lib explainers.
- Classes:
keras_classifier_wrapper: Wrapper for Keras classifiers.
Example
>>> from tensorflow import keras
>>> from xailib.models.keras_classifier_wrapper import keras_classifier_wrapper
>>>
>>> # Build and train your Keras model
>>> model = keras.Sequential([...])
>>> model.fit(X_train, y_train)
>>>
>>> # Wrap it for use with XAI-Lib
>>> bb = keras_classifier_wrapper(model)
>>>
>>> # Now use with any explainer
>>> from xailib.explainers.gradcam_explainer import GradCAMImageExplainer
>>> explainer = GradCAMImageExplainer(bb)
- class xailib.models.keras_classifier_wrapper.keras_classifier_wrapper(classifier)[source]
Bases:
AbstractBBoxWrapper class for Keras/TensorFlow classifiers.
This class wraps Keras models to provide the standard interface expected by XAI-Lib explainers.
- Parameters:
classifier – A trained Keras model.
- bbox
The wrapped Keras model.
Example
>>> model = keras.Sequential([...]) >>> model.fit(X_train, y_train) >>> wrapper = keras_classifier_wrapper(model) >>> wrapper.predict(X_test[:5])
- predict(X)[source]
Make class predictions for input instances.
- Parameters:
X – Input features as a numpy array.
- Returns:
Predicted class labels.
- Return type:
xailib.models.keras_ts_classifier_wrapper module
Keras time series classifier wrapper for XAI-Lib.
This module provides a wrapper class for Keras time series classifiers, handling the specific input/output requirements of time series models.
- Classes:
keras_classifier_wrapper: Wrapper for Keras time series classifiers.
Example
>>> from tensorflow import keras
>>> from xailib.models.keras_ts_classifier_wrapper import keras_classifier_wrapper
>>>
>>> # Build and train your Keras time series model
>>> model = keras.Sequential([
... keras.layers.LSTM(64, input_shape=(timesteps, features)),
... keras.layers.Dense(num_classes, activation='softmax')
... ])
>>> model.fit(X_train, y_train)
>>>
>>> # Wrap it for use with XAI-Lib
>>> bb = keras_classifier_wrapper(model)
- class xailib.models.keras_ts_classifier_wrapper.keras_classifier_wrapper(classifier)[source]
Bases:
AbstractBBoxWrapper class for Keras time series classifiers.
This class wraps Keras models designed for time series classification. It handles the conversion of model outputs to class predictions and probability estimates.
- Parameters:
classifier – A trained Keras time series model.
- bbox
The wrapped Keras model.
Note
For time series models, inputs typically have shape (n_samples, n_timesteps, n_features).
- predict(X)[source]
Make class predictions for time series input instances.
For outputs with multiple classes, returns the argmax of the output.
- Parameters:
X – Input time series as a numpy array with 3 dimensions (n_samples, n_timesteps, n_features).
- Returns:
Predicted class labels as a 1D array.
- Return type:
- predict_proba(X)[source]
Get prediction probabilities for time series input instances.
- Parameters:
X – Input time series as a numpy array with 3 dimensions (n_samples, n_timesteps, n_features).
- Returns:
Predicted class probabilities.
- Return type:
Note
Keras predict() already returns probabilities for softmax outputs.
xailib.models.pytorch_classifier_wrapper module
xailib.models.sklearn_classifier_wrapper module
Scikit-learn classifier wrapper for XAI-Lib.
This module provides a wrapper class for scikit-learn classifiers, allowing them to be used with XAI-Lib explainers.
- Classes:
sklearn_classifier_wrapper: Wrapper for scikit-learn classifiers.
Example
>>> from sklearn.ensemble import RandomForestClassifier
>>> from xailib.models.sklearn_classifier_wrapper import sklearn_classifier_wrapper
>>>
>>> # Train your model
>>> rf = RandomForestClassifier()
>>> rf.fit(X_train, y_train)
>>>
>>> # Wrap it for use with XAI-Lib
>>> bb = sklearn_classifier_wrapper(rf)
>>>
>>> # Now use with any explainer
>>> from xailib.explainers.lime_explainer import LimeXAITabularExplainer
>>> explainer = LimeXAITabularExplainer(bb)
- class xailib.models.sklearn_classifier_wrapper.sklearn_classifier_wrapper(classifier)[source]
Bases:
AbstractBBoxWrapper class for scikit-learn classifiers.
This class wraps scikit-learn compatible classifiers to provide the standard interface expected by XAI-Lib explainers.
- Parameters:
classifier – A trained scikit-learn classifier with predict and predict_proba methods.
- bbox
The wrapped scikit-learn classifier.
Example
>>> from sklearn.ensemble import GradientBoostingClassifier >>> clf = GradientBoostingClassifier().fit(X_train, y_train) >>> wrapper = sklearn_classifier_wrapper(clf) >>> wrapper.predict(X_test[:5]) array([0, 1, 1, 0, 1])
- model()[source]
Get the underlying scikit-learn model.
- Returns:
The wrapped scikit-learn classifier object.
- predict(X)[source]
Make class predictions for input instances.
- Parameters:
X – Input features as a numpy array of shape (n_samples, n_features).
- Returns:
Predicted class labels of shape (n_samples,).
- Return type:
xailib.models.sklearn_ts_classifier_wrapper module
Scikit-learn time series classifier wrapper for XAI-Lib.
This module provides a wrapper class for scikit-learn classifiers designed for time series data, handling the specific input shape requirements of time series models.
- Classes:
sklearn_classifier_wrapper: Wrapper for scikit-learn time series classifiers.
Example
>>> from sklearn.ensemble import RandomForestClassifier
>>> from xailib.models.sklearn_ts_classifier_wrapper import sklearn_classifier_wrapper
>>>
>>> # Train your scikit-learn model on flattened time series
>>> rf = RandomForestClassifier()
>>> rf.fit(X_train_2d, y_train)
>>>
>>> # Wrap it for use with XAI-Lib (handles 3D to 2D conversion)
>>> bb = sklearn_classifier_wrapper(rf)
- class xailib.models.sklearn_ts_classifier_wrapper.sklearn_classifier_wrapper(classifier)[source]
Bases:
AbstractBBoxWrapper class for scikit-learn time series classifiers.
This class wraps scikit-learn classifiers for time series data, handling the conversion from 3D time series format to the 2D format expected by scikit-learn.
- Parameters:
classifier – A trained scikit-learn classifier.
- bbox
The wrapped scikit-learn classifier.
Note
This wrapper converts 3D time series input (n_samples, n_timesteps, n_features) to 2D format (n_samples, n_timesteps) by taking the first feature dimension.
- model()[source]
Get the underlying scikit-learn model.
- Returns:
The wrapped scikit-learn classifier object.
- predict(X)[source]
Make class predictions for time series input instances.
Converts 3D time series input to 2D format before prediction by selecting only the first feature column (index 0).
- Parameters:
X – Input time series as a numpy array with 3 dimensions (n_samples, n_timesteps, n_features).
- Returns:
Predicted class labels as a 1D array.
- Return type:
- predict_proba(X)[source]
Get prediction probabilities for time series input instances.
Converts 3D time series input to 2D format before prediction by selecting only the first feature column (index 0).
- Parameters:
X – Input time series as a numpy array with 3 dimensions (n_samples, n_timesteps, n_features).
- Returns:
Predicted class probabilities.
- Return type:
Module contents
Model wrappers for XAI-Lib.
This subpackage provides wrapper classes for machine learning models from different frameworks (scikit-learn, Keras, PyTorch). These wrappers provide a unified interface for explainers to interact with various model types.
Available Wrappers
- General Purpose:
sklearn_classifier_wrapper: Wrapper for scikit-learn classifiers.keras_classifier_wrapper: Wrapper for Keras/TensorFlow classifiers.pytorch_classifier_wrapper: Wrapper for PyTorch classifiers.
- Time Series:
keras_classifier_wrapper: Wrapper for Keras time series classifiers.sklearn_classifier_wrapper: Wrapper for scikit-learn time series classifiers.
- Base Class:
AbstractBBox: Abstract base class for all model wrappers.
Example
>>> from sklearn.ensemble import RandomForestClassifier
>>> from xailib.models.sklearn_classifier_wrapper import sklearn_classifier_wrapper
>>>
>>> rf = RandomForestClassifier().fit(X_train, y_train)
>>> bb = sklearn_classifier_wrapper(rf)
>>> predictions = bb.predict(X_test)