Skip to main content

A unified Python package for interpreting and explaining machine learning and deep learning models, including feature attention mechanisms. Supports popular explanation techniques such as LIME, SHAP, Grad-CAM, permutation importance, and saliency maps. Provides a consistent interface for tabular, image, and other data types, enabling model transparency and interpretability.

Project description

Model Explain


Downloads 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()

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

model_explain-0.4.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

model_explain-0.4.0-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file model_explain-0.4.0.tar.gz.

File metadata

  • Download URL: model_explain-0.4.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for model_explain-0.4.0.tar.gz
Algorithm Hash digest
SHA256 38017654e05230bbd17a5345c328ae8989da334b842f838d05109048390bb30e
MD5 eb986f6cf5586a34e835f9df8787224b
BLAKE2b-256 c778cd048f770483233f4a0af601e4c94de171c4470e5e35ca72085cf7f238ea

See more details on using hashes here.

File details

Details for the file model_explain-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: model_explain-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 26.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for model_explain-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a7b08b8f7d84ffe7b077e6a92223e231098264070f6b0061f1d381a13bf4c0b
MD5 3cf84de0870149595eb640c5e35aaa82
BLAKE2b-256 4e725484061cf49cf4c9ecdb157a36adba12d9d281ca366ea34670d2a7d76cba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page