Определите правила игры в покер с помощью LIME!

Хотите объяснить результаты модели машинного обучения «черный ящик»? Мы уже писали:

И это последнее из серии: как пользоваться пакетом LIME (бумага, github). В этом сообщении блога мы увидим, как LIME можно использовать для объяснения того, как модель выучила правила покера. В процессе мы рассмотрим:

  • как LIME можно применить к игре в покер;
  • как работает LIME;
  • каковы преимущества и недостатки LIME.

Применение LIME в покере

Цель игры

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

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

Данные

Давайте посмотрим на помеченный набор данных, который мы будем использовать. Мы получили данные из Хранилища машинного обучения UCI. В нашем наборе данных наши карты были закодированы путем отделения ранга (номинала карты) от масти (дома).

Чтобы убедиться, что у нас достаточно данных для обучения нашей модели, у нас есть набор данных почти из миллиона строк для обучения, некоторые примеры которых показаны на изображении ниже:

Модель

Было бы достаточно просто жестко запрограммировать правила, определяющие, какая покерная рука у вас есть. Все ли пять карт в вашей руке по порядку? Тогда у вас есть стрит. Они все из одного дома? Тогда у вас есть стрит-флеш. Простой. Но зачем жестко запрограммировать правила, если можно получить модель, которая их выучит? Таким образом, вы можете применить этот метод к любому варианту покера или любому вызову, независимо от основных правил, регулирующих классификацию.

Для нашей модели мы выбрали классификатор случайного леса. Мы настроили гиперпараметры модели с помощью hyperopt. При взвешенном значении F1, равном 0,75, разумно прогнозировать покерную комбинацию, учитывая 5 карт в качестве входных данных. Хотите посмотреть, как мы это реализовали? См. наш код в конце этого сообщения в блоге!

Использование ИЗВЕСТИ

Мы используем LIME, чтобы определить, почему наша модель сделала такие прогнозы. Какие карты повлияли на его решение и почему? Здесь можно использовать LIME.

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

Давайте посмотрим на нашу первую руку:

Здесь наш классификатор предсказывает, что наши карты будут одной парой. Почему он это предсказывает? Давайте посмотрим, что говорит LIME:

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

Поскольку в нашей первой руке одна пара, вы можете ожидать, что два туза будут иметь наибольший вклад. Используя LIME, мы видим, что это не так. На приведенном выше графике вместо этого показано, что LIME считает, что карта ранга 3 внесла наибольший вклад в классификацию как одну пару (хотя и отрицательный вклад). Это понимание, которое вы бы упустили, если бы не использовали объяснимый ИИ. Изучение того, почему именно эта функция запускает модель LIME, является отличным моментом для дальнейшего исследовательского анализа данных.

Теперь давайте посмотрим на нашу вторую руку:

И применение ИЗВЕСТИ:

Здесь вы можете видеть, что ранги карт больше повлияли на классификацию флеша, чем масти. Это может показаться удивительным, учитывая, что у флеша должны быть одинаковые масти. Вместо этого, благодаря использованию LIME, мы можем видеть, что на самом деле именно ранги карт придают больший вес классификации. Хотя было бы легко пропустить это без использования объяснимого ИИ, с помощью LIME вы можете убедиться, что ваши гипотезы проверены.

LIME помогает интерпретировать, почему модель сделала такой прогноз. Независимо от того, используете ли вы его для подтверждения того, что модель запускает функции, которые вы ожидаете, или как часть исследовательского анализа, LIME — это мощный метод в вашем наборе инструментов.

Хотите больше теории?

Как уже упоминалось выше:

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

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

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

Чтобы понять, что LIME делает в фоновом режиме, давайте посмотрим, как работает LIME:

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

Плюсы ЛАЙМА

  • LIME хорошо работает с широким спектром наборов данных.
  • LIME намного быстрее, чем более математически полные методы, такие как значения SHAP.
  • Метод LIME для объяснения конкретного результата не меняется, даже если изменяется базовая модель черного ящика.

Минусы ЛАЙМА

  • Модели LIME не гарантируют раскрытия всех основных решений.
  • Модели LIME можно применять только локально, а не глобально

Больше информации

Наш Кодекс