objectif
Ajuster le noyau et le nombre de features pour stabilité.
code minimal
from lime.lime_tabular import LimeTabularExplainer
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_breast_cancer
X, y = load_breast_cancer(return_X_y=True)
clf = RandomForestClassifier(n_estimators=200, random_state=0).fit(X, y)
expl = LimeTabularExplainer(X, mode="classification", discretize_continuous=True, random_state=0, kernel_width=3.0)
exp = expl.explain_instance(X[0], clf.predict_proba, num_features=10)
pairs = exp.as_list()
print(len(pairs) <= 10)
utilisation
# Changer kernel_width
expl2 = LimeTabularExplainer(X, mode="classification", random_state=0, kernel_width=5.0)
exp2 = expl2.explain_instance(X[0], clf.predict_proba, num_features=5)
print(len(exp2.as_list()) == 5)
variante(s) utile(s)
# Limiter l'espace de features (mask)
# expl = LimeTabularExplainer(..., feature_selection='lasso_path')
print(True)
notes
- LIME peut être instable localement; testez plusieurs kernel_width et seeds pour robustesse.