Візуалізація пояснюваності SHAP

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

Fouad Trad

Machine Learning Engineer

Набір даних

age gender bmi children smoker charges
19 0 27.900 0 1 16884.92
18 1 33.770 1 0 1725.55
28 1 33.000 3 0 4449.46
33 1 22.705 0 0 21984.47
32 1 28.880 0 0 3866.85

model: випадковий ліс для регресії, щоб передбачати charges

import shap
explainer = shap.TreeExplainer(model)
shap_values = explainer.shap_values(X)
Пояснюваний ШІ в Python

Графік важливості ознак

  • Показує внесок кожної ознаки в вихід моделі
shap.summary_plot(shap_values, X, plot_type="bar")

Графік важливості ознак: статус куріння — найважливіша ознака.

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

Beeswarm-графік

  • Показує розподіл значень SHAP
  • Підсвічує напрям і величину впливу ознаки на прогноз
    • Червоний колір → високе значення ознаки
    • Синій колір → низьке значення ознаки
    • SHAP > 0 → збільшує результат
    • SHAP < 0 → зменшує результат

Графік «бджолиний рой» із розподілом значень SHAP для кожної ознаки; колір відображає значення ознаки.

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

Beeswarm-графік

  • Показує розподіл значень SHAP
  • Підсвічує напрям і величину впливу ознаки на прогноз
    • Червоний колір → високе значення ознаки
    • Синій колір → низьке значення ознаки
    • SHAP > 0 → збільшує результат
    • SHAP < 0 → зменшує результат

Той самий beeswarm-графік: високі значення ознаки 'smoker' мають додатні значення SHAP.

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

Beeswarm-графік

  • Показує розподіл значень SHAP
  • Підсвічує напрям і величину впливу ознаки на прогноз
    • Червоний колір → високе значення ознаки
    • Синій колір → низьке значення ознаки
    • SHAP > 0 → збільшує результат
    • SHAP < 0 → зменшує результат
shap.summary_plot(shap_values, X, 
                  plot_type="dot")

Той самий beeswarm-графік: низькі значення ознаки 'smoker' мають від'ємні значення SHAP.

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

Графік часткової залежності

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

Загальний графік часткової залежності: зв'язок між ознакою та результатом як спадна функція.

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

Графік часткової залежності

  • Для кожного зразка:
    • Варіюйте значення вибраної ознаки
    • Інші ознаки фіксуйте
    • Передбачайте результат
  • Усереднюйте результати всіх зразків
shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Графік часткової залежності для ознаки age: зі зростанням віку зростає й прогноз.

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

Графік часткової залежності

  • Для кожного зразка:

    • Варіюйте значення вибраної ознаки
    • Інші ознаки фіксуйте
    • Передбачайте результат
  • Усереднюйте результати всіх зразків

shap.partial_dependence_plot("age", 
                             model.predict, 
                             X)

Той самий графік часткової залежності з підсвіченим розподілом значень age у наборі даних.

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

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

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

Preparing Video For Download...