Локальная интерпретируемость с SHAP

Объяснимый ИИ на Python

Fouad Trad

Machine Learning Engineer

Глобальная и локальная интерпретируемость

Глобальная интерпретируемость
  • Общее поведение модели
  • Не объясняет отдельные примеры

Преподаватель объясняет всем студентам общие результаты класса.

Локальная интерпретируемость
  • Объясняет предсказание для конкретного примера
  • Важна для чувствительных задач

Преподаватель объясняет конкретному студенту причину его оценки.

1 Изображения созданы с помощью DALL-E
Объяснимый ИИ на Python

Набор данных о сердечных заболеваниях

age sex chest_pain_type blood_pressure ecg_results thalassemia target
52 1 0 125 1 3 0
53 1 0 140 0 3 0
70 1 0 145 1 3 0
61 1 0 148 1 3 0
62 0 0 138 1 2 0

 

knn: классификатор KNN для предсказания риска сердечно-сосудистых заболеваний

Объяснимый ИИ на Python

Локальная интерпретируемость с SHAP

explainer = shap.KernelExplainer(knn.predict_proba, shap.kmeans(X, 10))

test_instance = X.iloc[0, :]
shap_values = explainer.shap_values(test_instance)
print(shap_values.shape)
(6, 2)
Объяснимый ИИ на Python

Графики «водопад» в SHAP

  • Показывает, как признаки увеличивают или уменьшают предсказание модели

График «водопад», отображающий несколько признаков и вклад каждого из них в предсказание.

Объяснимый ИИ на Python

Графики «водопад» в SHAP

  • Показывает, как признаки увеличивают или уменьшают предсказание модели

Тот же график «водопад», показывающий базовое значение — начальную точку для предсказания.

Объяснимый ИИ на Python

Графики «водопад» в SHAP

  • Показывает, как признаки увеличивают или уменьшают предсказание модели

Тот же график «водопад»: признаки, направленные вправо, увеличивают предсказание, а направленные влево — уменьшают.

Объяснимый ИИ на Python

Построение графиков «водопад»

shap.waterfall_plot(

shap.Explanation(
values=shap_values[:,1],
base_values=explainer.expected_value[1],
data=test_instance,
feature_names=X.columns
)
)
Объяснимый ИИ на Python

Графики «водопад» для нескольких примеров

Рисунок с четырьмя графиками «водопад» — по одному для каждого примера — иллюстрирующий, как разные примеры приходят к решению модели разными путями.

Объяснимый ИИ на Python

Давайте потренируемся!

Объяснимый ИИ на Python

Preparing Video For Download...