Skip to main content

Model Explain


License: MIT PyPI version


model_explain is a Python package for interpreting and explaining machine learning models. It provides a unified interface for popular explanation techniques, including LIME, SHAP, and Grad-CAM and supports a wide range of models and data types.

Key Features

  • Unified API for LIME and SHAP explanations
  • Model-agnostic: works with any model supporting predict or predict_proba
  • Tabular, image, and text data support
  • Visualizations for both local and global explanations
  • Easy integration with scikit-learn, XGBoost, LightGBM, and more
  • Feature importance extraction and plotting
  • Interpretability for individual predictions and datasets

Installation

Install from PyPI:

pip install model-explain

Or, if you prefer to clone the repository and install manually:

git clone https://github.com/vaibhav-k/model_explain.git
cd model_explain
pip install .

Quick Start

Tabular Data Example (LIME)

from model_explain.explainers.lime_explainer import lime_explainer

# model: trained scikit-learn model
# X_test: pandas DataFrame of test features

explanation = lime_explainer(model, X_test, instance_index=0)
explanation.show_in_notebook()

Tabular Data Example (SHAP)

import shap
from model_explain.explainers.shap_explainer import shap_explainer

# model: trained machine learning model
# X_test: pandas DataFrame of test features

shap_values = shap_explainer(model, X_test)
shap.summary_plot(shap_values, X_test)

Image Data Example

from model_explain.explainers.grad_cam import GradCAM
import matplotlib.pyplot as plt

# model: your trained CNN model (e.g., from torchvision)
# image: a preprocessed image tensor of shape [1, C, H, W]
# predicted_class: integer index of the predicted class

explainer = GradCAM(model, target_layer_name="layer4")  # specify the last conv layer
heatmap = explainer(image, target_idx=predicted_class)

plt.imshow(heatmap, cmap="jet", alpha=0.5)
plt.title("Grad-CAM Heatmap")
plt.axis("off")
plt.show()

🕒 TimeSeriesExplainer

✨ Features

  • Works with TensorFlow/Keras and PyTorch models
  • Computes per-timestep SHAP attributions
  • Generates:
    • Temporal heatmaps of feature contributions
    • Feature importance over time plots
from model_explain.explainers.time_series_explainer import TimeSeriesExplainer

# model: your trained time series model
# X: input data of shape (num_samples, timesteps, features)

explainer = TimeSeriesExplainer(model, background_data=X[:5])
shap_values = explainer.explain(X[0])
explainer.plot_heatmap(shap_values, feature_names=[f"f{i}" for i in range(4)])

📝 Text Data Example

from model_explain.explainers.text_explainer import TextExplainer

# model: your trained text classification model
# class_names: list of class names for the model
# tokenizer: tokenizer for text preprocessing (if needed)

explainer = TextExplainer(model, class_names=["negative", "positive"])
explainer.explain_lime("This movie was surprisingly good!")

# For Transformers
explainer.explain_shap(["I love this movie!"], tokenizer=tokenizer)

💡 Quick Tips

  • Use LIME when:

    • You’re working with traditional ML models (TfidfVectorizer, CountVectorizer, etc.).
    • You need fast, approximate local explanations for many samples.
  • Use SHAP when:

    • Your model is a deep Transformer or you need precise, token-level insight.
    • You want globally consistent attributions (e.g., comparing feature importances across texts).
  • For best results, you can combine both:

    • Run LIME for a quick sanity check.
    • Use SHAP for detailed debugging and deeper interpretability.

Supported Models

  • Scikit-learn models
  • XGBoost
  • LightGBM
  • PyTorch models
  • Any model with predict or predict_proba methods

Visualizations

  • SHAP summary plot: global feature importance (use plot_feature_importance for custom bar plots)
  • LIME explanation plot: local feature contributions (use plot_feature_importance for instance-level contributions)
  • Image region importance (Grad-CAM heatmap): highlights spatial regions in images that most influence the model's prediction
  • Time-series heatmaps: Visualize feature contributions over time steps
  • Time-series line plots: Demonstrate average feature importance across time steps

Use Cases

  • Debugging and validating ML models
  • Regulatory compliance and transparency
  • Feature selection and engineering
  • Enhancing trust in AI systems
  • Explaining model predictions to stakeholders

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on how to contribute.


License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for model-explain 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for model-explain 0.5.0
File Size Uploaded
model_explain-0.5.0.tar.gz 33.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for model-explain 0.5.0
File Interpreter ABI Platform
model_explain-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 63.5 kB

Release files / model_explain-0.5.0.tar.gz

Download URL model_explain-0.5.0.tar.gz
Size 33.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2b409b5b3b8eb33b729470506c4bf8297b48d85092d5a604c03b8d3e647c22df
BLAKE2b-256 checksum
How to use checksums
36adb32396c65d9b5f423adb41311009780cdc4202a292d03a8000e55a86f53d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release files / model_explain-0.5.0-py3-none-any.whl

Download URL model_explain-0.5.0-py3-none-any.whl
Size 30.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
364991bfe831c64767dde26331d1f8b09b569f5d411dfd1f16dd4f00b8e122bf
BLAKE2b-256 checksum
How to use checksums
54c274b5872661268ba8f209e64c9613187e5787d26c515b423fbb3d20d3da07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page