Важливість перестановок

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

Fouad Trad

Machine Learning Engineer

Перемішуємо ноти, щоб визначити важливість інструмента

Зображення гурту музикантів, що грають на різних інструментах.

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

Важливість перестановок

  • Метод, незалежний від моделі
  • Оцінює важливість ознак
    • Вимірює вплив перемішування ознак на якість
  • Дуже універсальний

Зображення структури нейронної мережі: кілька прихованих шарів із нейронами.

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

Важливість перестановок на практиці

Зображення набору даних із 5 ознак і натренованої ML-моделі.

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

Важливість перестановок на практиці

Зображення: набір даних подається в ML-модель для базової якості.

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

Важливість перестановок на практиці

Зображення: одну ознаку перемішано — у вихідному наборі її значення були [1, 2, 3, 4], а після перемішування стали [4, 2, 1, 3]. Перемішаний набір подано в ML-модель для отримання якості після перемішування.

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

Важливість перестановок на практиці

Зображення: важливість перемішаної ознаки пропорційна падінню якості.

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

Важливість перестановок на практиці

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

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

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

GRE Score TOEFL Score University Rating SOP LOR CGPA Chance of Admit Accept
337 118 4 4.5 4.5 9.65 0.92 1
324 107 4 4 4.5 8.87 0.76 1
316 104 3 3 3.5 8 0.72 1
322 110 3 3.5 2.5 8.67 0.8 1
314 103 2 2 3 8.21 0.45 0

 

Дані зберігаються в: X_train, y_train

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

MLPClassifier

from sklearn.neural_network import MLPClassifier
model = MLPClassifier(hidden_layer_sizes=(10,10))

model.fit(X_train, y_train)
Пояснюваний ШІ в Python

Важливість перестановок

from sklearn.inspection import permutation_importance

result = permutation_importance(model,
X_train, y_train,
n_repeats=10,
random_state=42,
scoring='accuracy')
print(result.importances_mean)
[0.16213568 0.13831658 0.10575377 0.10522613 0.11741206 0.20072864]
Пояснюваний ШІ в Python

Візуалізація важливості

import matplotlib.pyplot as plt
plt.bar(X_train.columns,
        result.importances_mean)

Стовпчикова діаграма важливості перестановок: CGPA має найбільшу важливість.

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

Порівняння зі специфічними для моделі підходами

import matplotlib.pyplot as plt
plt.bar(X_train.columns, 
        result.importances_mean)

Стовпчикова діаграма важливості перестановок: CGPA має найбільшу важливість.

Логістична регресія
plt.bar(X_train.columns, np.abs(log_reg.coef_[0]))

Стовпчикова діаграма коефіцієнтів логістичної регресії: CGPA має найбільшу важливість.

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

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

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

Preparing Video For Download...