← retour aux snippets

lime: expliquer une prédiction tabulaire

Expliquer localement une prédiction de modèle via LIME.

objectif

Expliquer localement une prédiction de modèle via LIME.

code minimal

import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from lime.lime_tabular import LimeTabularExplainer

X, y = load_breast_cancer(return_X_y=True)
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=0, stratify=y)
clf = RandomForestClassifier(n_estimators=200, random_state=0).fit(X_train, y_train)

explainer = LimeTabularExplainer(X_train, mode="classification", discretize_continuous=True, random_state=0)
exp = explainer.explain_instance(X_val[0], clf.predict_proba, num_features=5)
print(len(exp.as_list()) > 0)

utilisation

# Visualisation HTML (sauvegarde dans un fichier)
html = exp.as_html()
print(isinstance(html, str))

variante(s) utile(s)

# Régression: mode='regression' et fonction de prédiction renvoyant des valeurs continues
print(True)

notes

  • LIME approxime localement le modèle; sensible à la configuration (kernel_width, discretization).