Förklarbarhetsmätvärden

Förklarbar AI i Python

Fouad Trad

Machine Learning Engineer

Konsistens

  • Utvärderar stabiliteten hos förklaringar när modellen tränas på olika delmängder
  • Låg konsistens → inga robusta förklaringar

Bild som visar en datamängd uppdelad i två delmängder: delmängd 1 och delmängd 2.

Förklarbar AI i Python

Konsistens

  • Utvärderar stabiliteten hos förklaringar när modellen tränas på olika delmängder
  • Låg konsistens → inga robusta förklaringar

En modell tränas på varje delmängd.

Förklarbar AI i Python

Konsistens

  • Utvärderar stabiliteten hos förklaringar när modellen tränas på olika delmängder
  • Låg konsistens → inga robusta förklaringar

Varje gång modellen tränas på en delmängd beräknar vi särdragsvikter och kosinuslikhet för dessa.

Förklarbar AI i Python

Kosinuslikhet för att mäta konsistens

 

 

 

Bild som visar nyckelvärdena för konsistens och deras innebörd: värdet 1 innebär mycket konsekventa förklaringar.

Förklarbar AI i Python

Kosinuslikhet för att mäta konsistens

 

 

 

Bild som visar nyckelvärdena för konsistens och deras innebörd: 1 innebär mycket konsekventa förklaringar, 0 innebär inga konsekventa förklaringar.

Förklarbar AI i Python

Kosinuslikhet för att mäta konsistens

 

 

 

Bild som visar nyckelvärdena för konsistens och deras innebörd: 1 innebär mycket konsekventa förklaringar, 0 innebär inga konsekventa förklaringar och -1 innebär motsatta förklaringar.

Förklarbar AI i Python

Antagningsdatamängd

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: första delen av datamängden
  • X2, y2: andra delen av datamängden
  • model1, model2: slumpskogsregressorer
Förklarbar AI i Python

Beräkna konsistens

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]]
Förklarbar AI i Python

Trohet

  • Utvärderar om viktiga särdrag påverkar modellens förutsägelser
  • Låg trohet → vilseleder förtroendet för modellens resonemang
  • Användbar i känsliga tillämpningar

Bild som visar en modell som genererar en ursprunglig förutsägelse för ett indataexempel.

Förklarbar AI i Python

Trohet

  • Utvärderar om viktiga särdrag påverkar modellens förutsägelser
  • Låg trohet → vilseleder förtroendet för modellens resonemang
  • Användbar i känsliga tillämpningar

SHAP eller LIME används för att lokalt förklara denna ursprungliga förutsägelse.

Förklarbar AI i Python

Trohet

  • Utvärderar om viktiga särdrag påverkar modellens förutsägelser
  • Låg trohet → vilseleder förtroendet för modellens resonemang
  • Användbar i känsliga tillämpningar

Ett modifierat exempel matas in i modellen för att generera en ny förutsägelse.

Förklarbar AI i Python

Trohet

  • Utvärderar om viktiga särdrag påverkar modellens förutsägelser
  • Låg trohet → vilseleder förtroendet för modellens resonemang
  • Användbar i känsliga tillämpningar

Bild som visar formeln för att beräkna trohet som absolutvärdet av skillnaden mellan den nya förutsägelsen och den ursprungliga förutsägelsen.

Förklarbar AI i Python

Beräkna trohet

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

Bild som visar LIME:s förklaring av särdragsvikter för det valda exemplet.

Förklarbar AI i Python

Beräkna trohet

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
Förklarbar AI i Python

Nu kör vi en övning!

Förklarbar AI i Python

Preparing Video For Download...