Uitlegbaarheidsmetrics

Explainable AI in Python

Fouad Trad

Machine Learning Engineer

Consistentie

  • Beoordeelt stabiliteit van verklaringen bij training op verschillende subsets
  • Lage consistentie → geen robuuste verklaringen

Afbeelding met een dataset, verdeeld in twee subsets: subset 1 en subset 2.

Explainable AI in Python

Consistentie

  • Beoordeelt stabiliteit van verklaringen bij training op verschillende subsets
  • Lage consistentie → geen robuuste verklaringen

Een model wordt op elke subset getraind.

Explainable AI in Python

Consistentie

  • Beoordeelt stabiliteit van verklaringen bij training op verschillende subsets
  • Lage consistentie → geen robuuste verklaringen

Elke keer dat het model op een subset is getraind, leiden we feature-importance af en berekenen we de cosinusgelijkenis daarvan.

Explainable AI in Python

Cosinusgelijkenis om consistentie te meten

 

 

 

Afbeelding met sleutelwaarden voor consistentie en hun betekenis: bij 1 zeer consistente verklaringen.

Explainable AI in Python

Cosinusgelijkenis om consistentie te meten

 

 

 

Afbeelding met sleutelwaarden voor consistentie en hun betekenis: bij 1 zeer consistente verklaringen, bij 0 geen consistente verklaringen,

Explainable AI in Python

Cosinusgelijkenis om consistentie te meten

 

 

 

Afbeelding met sleutelwaarden voor consistentie en hun betekenis: bij 1 zeer consistente verklaringen, bij 0 geen consistente verklaringen, en bij -1 tegengestelde verklaringen.

Explainable AI in Python

Toelatingsdataset

GRE-score TOEFL-score University Rating SOP LOR CGPA Chance of Admit
337 118 4 4.5 4.5 9.65 0.92
324 107 4 4 4.5 8.87 0.76
316 104 3 3 3.5 8 0.72
322 110 3 3.5 2.5 8.67 0.8
314 103 2 2 3 8.21 0.45

 

  • X1, y1: eerste deel van de dataset
  • X2, y2: tweede deel van de dataset
  • model1, model2: random-forest-regressors
Explainable AI in Python

Consistentie berekenen

from sklearn.metrics.pairwise import cosine_similarity

explainer1 = shap.TreeExplainer(model1) explainer2 = shap.TreeExplainer(model2)
shap_values1 = explainer1.shap_values(X1) shap_values2 = explainer2.shap_values(X2)
feature_importance1 = np.mean(np.abs(shap_values1), axis=0) feature_importance2 = np.mean(np.abs(shap_values2), axis=0)
consistency = cosine_similarity([feature_importance1], [feature_importance2]) print("Consistency between SHAP values:", consistency)
Consistency between SHAP values: [[0.99706516]]
Explainable AI in Python

Faithfulness

  • Toetst of belangrijke features de voorspelling sturen
  • Lage faithfulness → misleidt vertrouwen in modelredenering
  • Handig bij gevoelige toepassingen

Afbeelding van een model dat een originele voorspelling voor een invoer voorbeeld genereert.

Explainable AI in Python

Faithfulness

  • Toetst of belangrijke features de voorspelling sturen
  • Lage faithfulness → misleidt vertrouwen in modelredenering
  • Handig bij gevoelige toepassingen

SHAP of LIME worden lokaal gebruikt om deze originele voorspelling te verklaren.

Explainable AI in Python

Faithfulness

  • Toetst of belangrijke features de voorspelling sturen
  • Lage faithfulness → misleidt vertrouwen in modelredenering
  • Handig bij gevoelige toepassingen

Een aangepast voorbeeld wordt in het model gevoerd om een nieuwe voorspelling te genereren.

Explainable AI in Python

Faithfulness

  • Toetst of belangrijke features de voorspelling sturen
  • Lage faithfulness → misleidt vertrouwen in modelredenering
  • Handig bij gevoelige toepassingen

Afbeelding met de formule voor faithfulness als de absolute waarde van het verschil tussen de nieuwe en de originele voorspelling.

Explainable AI in Python

Faithfulness berekenen

X_instance = X_test.iloc[[0]]

original_prediction = model.predict_proba(X_instance)[0, 1] print(f"Original prediction: {original_prediction}")
Original prediction: 0.43

Afbeelding met LIME’s feature-importanceverklaring voor het geselecteerde voorbeeld.

Explainable AI in Python

Faithfulness berekenen

X_instance['GRE Score'] = 310  


new_prediction = model.predict_proba(X_instance)[0, 1] print(f"Prediction after perturbing {important_feature}: {new_prediction}")
faithfulness_score = np.abs(original_prediction - new_prediction) print(f"Local Faithfulness Score: {faithfulness_score}")
Prediction after perturbing GRE Score: 0.77

Local Faithfulness Score: 0.34
Explainable AI in Python

Laten we oefenen!

Explainable AI in Python

Preparing Video For Download...