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

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

Что такое ЭЛИ5?

«Объясните, как мне 5» (ELI5) — это библиотека Python, которая помогает понять прогнозы, сделанные моделями машинного обучения, простым и понятным способом. Это полезно для отладки моделей и улучшения их интерпретируемости. С ELI5 можно лучше понять, как модель делает свои прогнозы, какие функции важны для этих прогнозов и принимает ли модель предвзятые или неожиданные решения.

ELI5 предлагает различные методы для объяснения различных типов моделей машинного обучения, таких как линейные и древовидные модели, а также модели глубокого обучения. Кроме того, ELI5 совместим с несколькими библиотеками машинного обучения, включая scikit-learn, Keras, XGBoost и LightGBM.

ELI5 известен своей способностью предлагать глобальные и локальные объяснения, два типа объяснений, которые дают представление о различных аспектах моделей машинного обучения. Глобальные объяснения обеспечивают широкое понимание поведения модели и того, какие функции важны для прогнозирования. С другой стороны, локальные пояснения предоставляют информацию о том, почему конкретный экземпляр был классифицирован определенным образом и какие особенности повлияли на эту классификацию. Эта функция ELI5 необходима для всестороннего понимания внутренней работы модели и выявления любых проблем, которые могут существовать.

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

Как использовать ELI5?

ELI5 можно установить с помощью pip, популярного установщика пакетов для Python. Чтобы установить ELI5, используйте терминал или командную строку и выполните следующую команду:

pip install eli5

Если вы используете Anaconda, вы можете установить ELI5 с помощью следующей команды:

conda install -c conda-forge eli5

Использование ELI5 для объяснения моделей машинного обучения

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

Чтобы объяснить прогнозы модели, можно использовать функцию explain_prediction() ELI5. Обученная модель, точка входных данных для объяснения и имена входных функций передаются в качестве аргументов этой функции. Он возвращает текстовое объяснение прогноза модели, выделяя функции, которые внесли наибольший вклад в прогноз.

Чтобы объяснить важность функции модели, можно использовать класс PermutationImportance ELI5. Обученная модель, входной набор данных и имена входных объектов передаются в качестве аргументов конструктору этого класса при инициализации. Он дает оценку важности функции для каждой функции в наборе данных, указывая вклад каждой функции в производительность модели.

Примеры использования ELI5 в числовых данных, компьютерном зрении и данных на естественном языке

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

  1. Числовые данные

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

Например, в случае задачи, когда необходимо прогнозировать рейтинги фильмов на основе определенных числовых признаков, можно рассматривать следующие данные:

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

Мы также можем изучить отдельные прогнозы и вероятности, связанные с каждым классом, используя функцию show_prediction():

from eli5 import show_prediction
show_prediction(model, X_test.iloc[1], horizontal_layout=False, show_feature_values=True)

Приведенное выше дает следующий результат:

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

2. Данные компьютерного зрения

ELI5 можно использовать для объяснения таких моделей, как сверточные нейронные сети (CNN) и классификаторы изображений для данных компьютерного зрения. Используя ELI5, пользователь может получить представление о том, на какие части изображения обращает внимание модель и какие функции важны для задачи классификации.

В качестве иллюстрации классификатор логистической регрессии обучается на наборе данных MNIST для классификации цифр. Полученную модель можно изучить с помощью ELI5, чтобы понять, какие пиксели важны для классификации, и объяснить, какие пиксели способствовали классификации изображений с 0 и 3, как показано в следующих результатах:

Код для вышеуказанного доступен здесь.

3. Данные на естественном языке

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

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

Код для вышеуказанного доступен здесь.

Преимущества и недостатки ELI5

ELI5 предоставляет несколько преимуществ для специалистов по машинному обучению, таких как:

  1. Улучшенная производительность модели: ELI5 может определять наиболее важные функции для прогнозов, позволяя удалять нерелевантные или избыточные функции. Это упрощает модель и повышает ее точность.
  2. Интерпретируемость: ELI5 может предложить визуальное объяснение того, как работают модели, что упрощает их интерпретацию. Это может помочь заинтересованным сторонам, включая лиц, принимающих решения, и клиентов, понять, как модель пришла к своему решению.
  3. Отладка: ELI5 может помочь в выявлении ошибок или погрешностей в модели. Анализируя наиболее важные особенности каждого прогноза, мы можем определить, принимает ли модель решения на основе соответствующей информации или просто использует ложные корреляции.

Несмотря на множество преимуществ, ELI5 имеет некоторые ограничения, о которых следует знать пользователям. Вот некоторые из них:

  1. Интерпретация может отличаться: объяснения ELI5 могут различаться в зависимости от используемой модели, данных и параметров. Поэтому важно тщательно оценивать и интерпретировать результаты.
  2. Несовместимость с некоторыми пакетами: ELI5 может быть несовместим с некоторыми пакетами машинного обучения, такими как statsmodels или пакет неожиданностей, используемый в рекомендательных системах. Это ограничивает его применимость несколькими пакетами.

Заворачиваем…

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

Хотя ELI5 имеет множество преимуществ, он также имеет некоторые ограничения. Он может быть несовместим со всеми моделями или пакетами машинного обучения, а интерпретация результатов может быть субъективной. Тем не менее, признавая эти ограничения и используя ELI5 наряду с другими инструментами и методами интерпретируемости, можно глубже понять их модели и принимать более обоснованные решения.

В целом, ELI5 является ценным активом для любого рабочего процесса машинного обучения и может предложить ценную информацию о внутренней работе моделей машинного обучения.

Для доступа к коду, используемому в этой статье, обратитесь к этому репозиторию.

Используемые ссылки:

https://eli5.readthedocs.io/en/latest/