← retour aux snippets

lime: kernel_width et features

Ajuster le noyau et le nombre de features pour stabilité.

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.