Метрики пояснюваності

Пояснюваний ШІ в Python

Fouad Trad

Machine Learning Engineer

Узгодженість

  • Оцінює стабільність пояснень, коли модель навчена на різних підмножинах
  • Низька узгодженість → пояснення не є надійними

Зображення набору даних, поділеного на дві підмножини: підмножина 1 і підмножина 2.

Пояснюваний ШІ в Python

Узгодженість

  • Оцінює стабільність пояснень, коли модель навчена на різних підмножинах
  • Низька узгодженість → пояснення не є надійними

Модель навчається на кожній підмножині.

Пояснюваний ШІ в Python

Узгодженість

  • Оцінює стабільність пояснень, коли модель навчена на різних підмножинах
  • Низька узгодженість → пояснення не є надійними

Щоразу, коли модель навчається на підмножині, ми отримуємо важливість ознак і рахуємо косинусну подібність між ними.

Пояснюваний ШІ в Python

Косинусна подібність для вимірювання узгодженості

 

 

 

Значення метрики Consistency та їх значення: для 1 маємо дуже узгоджені пояснення.

Пояснюваний ШІ в Python

Косинусна подібність для вимірювання узгодженості

 

 

 

Значення метрики Consistency та їх значення: для 1 маємо дуже узгоджені пояснення, для 0 — відсутня узгодженість.

Пояснюваний ШІ в Python

Косинусна подібність для вимірювання узгодженості

 

 

 

Значення метрики Consistency та їх значення: для 1 маємо дуже узгоджені пояснення, для 0 — відсутня узгодженість, для -1 — протилежні пояснення.

Пояснюваний ШІ в Python

Набір даних про вступ

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: перша частина набору даних
  • X2, y2: друга частина набору даних
  • model1, model2: регресори random forest
Пояснюваний ШІ в Python

Обчислення узгодженості

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]]
Пояснюваний ШІ в Python

Достовірність (Faithfulness)

  • Перевіряє, чи важливі ознаки впливають на передбачення моделі
  • Низька достовірність → вводить в оману щодо логіки моделі
  • Корисно в чутливих застосунках

Модель генерує початкове передбачення для вхідного зразка.

Пояснюваний ШІ в Python

Достовірність (Faithfulness)

  • Перевіряє, чи важливі ознаки впливають на передбачення моделі
  • Низька достовірність → вводить в оману щодо логіки моделі
  • Корисно в чутливих застосунках

SHAP або LIME локально пояснюють це початкове передбачення.

Пояснюваний ШІ в Python

Достовірність (Faithfulness)

  • Перевіряє, чи важливі ознаки впливають на передбачення моделі
  • Низька достовірність → вводить в оману щодо логіки моделі
  • Корисно в чутливих застосунках

Модифікований зразок подається в модель для нового передбачення.

Пояснюваний ШІ в Python

Достовірність (Faithfulness)

  • Перевіряє, чи важливі ознаки впливають на передбачення моделі
  • Низька достовірність → вводить в оману щодо логіки моделі
  • Корисно в чутливих застосунках

Формула для обчислення достовірності як модуля різниці між новим і початковим передбаченнями.

Пояснюваний ШІ в Python

Обчислення достовірності

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

Пояснення важливості ознак від LIME для вибраного зразка.

Пояснюваний ШІ в Python

Обчислення достовірності

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
Пояснюваний ШІ в Python

Давайте потренуємось!

Пояснюваний ШІ в Python

Preparing Video For Download...