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).