Metrici de explicabilitate

AI Explicabil în Python

Fouad Trad

Machine Learning Engineer

Consistență

  • Evaluează stabilitatea explicațiilor când modelul este antrenat pe subseturi diferite
  • Consistență scăzută → explicații nerobuste

Imagine cu un set de date împărțit în două subseturi: subsetul 1 și subsetul 2.

AI Explicabil în Python

Consistență

  • Evaluează stabilitatea explicațiilor când modelul este antrenat pe subseturi diferite
  • Consistență scăzută → explicații nerobuste

Un model este antrenat pe fiecare subset.

AI Explicabil în Python

Consistență

  • Evaluează stabilitatea explicațiilor când modelul este antrenat pe subseturi diferite
  • Consistență scăzută → explicații nerobuste

De fiecare dată când modelul este antrenat pe un subset, se derivă importanțele caracteristicilor și se calculează similaritatea cosinus pentru acestea.

AI Explicabil în Python

Similaritatea cosinus pentru măsurarea consistenței

 

 

 

Imagine cu valorile cheie ale consistenței și semnificațiile lor: pentru 1 avem explicații foarte consistente.

AI Explicabil în Python

Similaritatea cosinus pentru măsurarea consistenței

 

 

 

Imagine cu valorile cheie ale consistenței și semnificațiile lor: pentru 1 avem explicații foarte consistente, pentru 0, nicio explicație consistentă.

AI Explicabil în Python

Similaritatea cosinus pentru măsurarea consistenței

 

 

 

Imagine cu valorile cheie ale consistenței și semnificațiile lor: pentru 1 avem explicații foarte consistente, pentru 0, nicio explicație consistentă, iar pentru -1, explicații contrare.

AI Explicabil în Python

Setul de date privind admiterile

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: prima parte a setului de date
  • X2, y2: a doua parte a setului de date
  • model1, model2: regresori de tip random forest
AI Explicabil în Python

Calcularea consistenței

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]]
AI Explicabil în Python

Fidelitate

  • Evaluează dacă caracteristicile importante influențează predicțiile modelului
  • Fidelitate scăzută → înșelarea încrederii în raționamentul modelului
  • Util în aplicații sensibile

Imagine cu un model care generează predicția originală pentru un eșantion de intrare.

AI Explicabil în Python

Fidelitate

  • Evaluează dacă caracteristicile importante influențează predicțiile modelului
  • Fidelitate scăzută → înșelarea încrederii în raționamentul modelului
  • Util în aplicații sensibile

SHAP sau LIME sunt utilizate pentru a explica local această predicție originală.

AI Explicabil în Python

Fidelitate

  • Evaluează dacă caracteristicile importante influențează predicțiile modelului
  • Fidelitate scăzută → înșelarea încrederii în raționamentul modelului
  • Util în aplicații sensibile

Un eșantion modificat este introdus în model pentru a genera o nouă predicție.

AI Explicabil în Python

Fidelitate

  • Evaluează dacă caracteristicile importante influențează predicțiile modelului
  • Fidelitate scăzută → înșelarea încrederii în raționamentul modelului
  • Util în aplicații sensibile

Imagine cu formula pentru calcularea fidelității ca valoare absolută a diferenței dintre noua predicție și predicția originală.

AI Explicabil în Python

Calcularea fidelității

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

Imagine cu explicația importanței caracteristicilor oferită de LIME pentru eșantionul selectat.

AI Explicabil în Python

Calcularea fidelității

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
AI Explicabil în Python

Să exersăm!

AI Explicabil în Python

Preparing Video For Download...