В этом блоге я попытаюсь продемонстрировать, как объяснить модели машинного обучения черного ящика (с использованием числовых данных в качестве набора поездов) с помощью LIME. Я использовал этот пакет Python, и большинство примеров, которые я нашел для использования этого пакета, относились к данным изображений. Вот почему я хотел поделиться своим опытом объяснения числовых данных с помощью LIME.

Что в этом руководстве

  • Справочная информация о LIME
  • Обучение и использование алгоритма черного ящика KNN и XgBoost для обнаружения мошенничества с кредитными картами.
  • Использование лайма Для объяснения решений, принятых алгоритмом KNN и XgBoost.

Что такое ЛАЙМ

По мнению авторов статьи, Лайм - это

новый метод объяснения, который объясняет предсказания любого классификатора интерпретируемым и достоверным образом, путем изучения интерпретируемой модели локально вокруг предсказания.

Эта видеопрезентация очень помогла мне разобраться в LIME.

После прочтения статьи и просмотра этого руководства я захотел провести несколько экспериментов с LIME с набором данных по обнаружению мошенничества с кредитными картами. Я использовал алгоритмы KNN и XgBoost, чтобы классифицировать данные по классам Мошенничество и Отсутствие мошенничества.

Обучение модели

Поскольку классификационная часть моего кода в основном использовала коды из этого учебника по набору данных по обнаружению мошенничества, я не буду уделять много внимания классификационной части. Код, который я использовал для запуска обучения и оценки моделей, приведен ниже:

Результат приведенного выше кода будет таким, как показано ниже:

Объяснение модели с использованием LIME

Сначала давайте перечислим все атрибуты набора данных, чтобы их можно было правильно пометить при объяснении:

Теперь давайте создадим объяснитель с этим набором функций и данных, а затем инициализируем случайный экземпляр, который мы хотим объяснить с помощью LIME.

Теперь мы можем объяснить i-й экземпляр набора данных, используя LIME для обеих моделей:

Результат будет примерно таким:

Обратите внимание, что здесь все свойства набора данных, кроме количества, были получены путем выполнения PCA для основного набора данных.

Полную суть можно найти здесь: