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

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

В этом посте мы объясним, почему нам нужно использовать такие механизмы и как мы их реализуем.

Создание инструмента прогнозирования бизнеса

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

Для данной локации, имитирующей новое отверстие, они, среди прочего, получат:

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

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

Чтобы модуль был полезным, мы должны разработать:

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

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

Для первого мы используем передовые методы и модели, которые обычно называются моделями черного ящика из-за их слабой интерпретируемости: трудно понять, как они достигают данного прогноза. Таким образом, третий шаг следует обобщить для любой модели, независимо от ее природы, и именно на этом мы хотим сосредоточить наше внимание в этом посте.

Влияние функции

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

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

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

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

Наш Explainer использует библиотеку Python Local Interpretable Model-Agnostic Explanations (LIME) с некоторыми модификациями, чтобы адаптировать ее для работы с нашим вариантом использования (LIME был разработан для объяснения классификаторов и должен быть изменен для правильной работы с регрессорами).

Наиболее интересными элементами LIME являются:

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

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

Для заданной точки алгоритм работает следующим образом:

  1. Создается новый набор данных возмущений точки.
  2. Модель используется для прогнозирования всех этих новых точек (включая исходную).
  3. Линейная регрессия включает возмущения и прогнозы в качестве выходных данных.
  4. Для каждой переменной мы умножаем коэффициент, полученный линейной моделью, и значение этой переменной для исходной точки, чтобы получить влияние.

Выводы

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

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

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