Перестановочная важность

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

Fouad Trad

Machine Learning Engineer

Перемешивание нот для определения важности инструмента

Изображение музыкантов, играющих на разных инструментах.

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

Перестановочная важность

  • Метод, независимый от модели
  • Оценивает важность признаков
    • Измеряет влияние перемешивания признака на качество модели
  • Высокая универсальность

Изображение структуры нейронной сети: набор скрытых слоёв, каждый из которых содержит несколько нейронов.

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

Перестановочная важность в действии

Изображение набора данных из 5 признаков и обученной модели машинного обучения.

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

Перестановочная важность в действии

Изображение подачи набора данных в модель машинного обучения для получения базового качества.

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

Перестановочная важность в действии

Изображение перемешивания одного признака: исходные значения [1, 2, 3, 4] стали [4, 2, 1, 3]. Перемешанный набор данных подаётся в модель для получения нового значения качества.

Объяснимый ИИ на 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...