Enhancing LIME through Neural Decision Trees
Project description
lime_ndt
lime_ndt is a Python library that introduces an enhanced version of the LIME technique for model explainability, leveraging Neural Decision Trees (NDTs) for improved local and global interpretability of machine learning models.
Features
- Enhanced LIME explanations using Neural Decision Trees.
- Support for tabular data.
- Tools for extracting, analyzing, and comparing decision trees and forests.
- Utilities for submodular pick and discretization.
- Integration with Keras and scikit-learn.
Example Usage
Below is a minimal example showing how to use lime_ndt to explain a regression model on the diabetes dataset:
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from lime_ndt.lime_tabular import LimeTabularExplainer
from lime_ndt.utils.ndt_sklearn_wrapper import NDTRegressorWrapper
import matplotlib.pyplot as plt
# Load the diabetes dataset
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target
# Split into train/test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
# Train a Random Forest regressor
rf = RandomForestRegressor(random_state=42)
rf.fit(X_train, y_train)
# Prediction function
def predict_fn(X):
return rf.predict(X)
# Create the LIME explainer
explainer = LimeTabularExplainer(
X_train,
feature_names=diabetes.feature_names,
class_names=None,
discretize_continuous=True,
mode='regression',
)
# Create the local NDT model
model_regressor = NDTRegressorWrapper(D=X_train.shape[1]) # gamma=[1,100] , max_depth = 5
# Explain a test instance
exp = explainer.explain_instance(
X_test[8],
predict_fn,
num_features=10,
model_regressor=model_regressor
)
# Visualize the explanation
exp.as_pyplot_figure()
plt.show()
Requirements
- Python 3.7+
- numpy, pandas, scikit-learn, keras, tensorflow, matplotlib
See requirements.txt for the full list.
License
This project is licensed under the Apache License 2.0. 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lime_ndt-0.1.4.tar.gz.
File metadata
- Download URL: lime_ndt-0.1.4.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00eb1c90e10c4b87e9d6ace6739a73b00da6d8d978ca53777de64b1c3dbad0d2
|
|
| MD5 |
21756dd097f78b87bc01cac890034665
|
|
| BLAKE2b-256 |
05553af1717cdd5953fd1a3b81daedf4ef93c55d634a4ff2ae78a65d0c997c98
|
File details
Details for the file lime_ndt-0.1.4-py3-none-any.whl.
File metadata
- Download URL: lime_ndt-0.1.4-py3-none-any.whl
- Upload date:
- Size: 42.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ec86b8a9c45253aef87088ab077bf995656d1c41ec7d4d5f2f046ff9428604c
|
|
| MD5 |
70c9dbe37a1264281304bf8d63b8cb18
|
|
| BLAKE2b-256 |
7fa4bc0ed2161cde0559a1d008ec8cdca872c25af099c310433b3b3e4b1491ee
|