Как максимизировать прогноз выходных данных модели ML с ограничениями на значения функций?

#python #machine-learning #neural-network #regression #mathematical-optimization

Вопрос:

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

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

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

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

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

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

Ответ №1:

Я бы посоветовал вам изучить такие решения, как ИЗВЕСТЬ или ШАП:

  1. https://github.com/slundberg/shap — Объяснения моделей с помощью теории игр.
  2. https://github.com/marcotcr/lime — Объяснения модели с помощью локально интерпретируемой подгонки.

Комментарии:

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