Модификация логиста c регресса и наивного байесовского учащегося в карете для учета чувствительности к затратам - PullRequest
0 голосов
/ 04 апреля 2020

Я провел, используя 10-кратную перекрестную проверку с каретой, и logisti c регрессию и Наивный Байес на обучающем наборе данных о продажах, чтобы предсказать вероятность успешной продажи.

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

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

  1. Стоимость отказа от обращения к клиенту, и клиент не заинтересован = 0 (без потерь или выгод)

  2. Стоимость обращения к клиенту, а клиент не заинтересован = -1 (потеря времени / денег / усилий / ресурсов в маркетинге для клиента и т. Д. c.)

  3. Стоимость отказа от обращения к клиенту и заинтересованному клиенту = -10 (потеря потенциального дохода от заинтересованного клиента)

  4. Стоимость обращения к клиенту и заинтересованному клиенту = 9 (потеря времени / денег / усилия / ресурсы + прибыль, так как клиент успешно купит продукт).

Я действительно не уверен, как, если это вообще возможно, изменить встроенные методы в поезде функционируют в карете, чтобы оштрафовать за эти расходы. Во-первых, я думал о том, чтобы просто использовать более высокий порог вероятности для классификации вместо обычного 0,5 среза, после обучения моделей обычным образом. Однако я не уверен, как включить указанные выше затраты c, если я воспользуюсь этим подходом. Второй способ заключается в изменении функции стоимости регрессии logisti c (я провел исследование по этому вопросу и нашел способ учесть мои затраты, построив регрессионную модель logisti c с нуля с помощью слегка измененной функции стоимости ). Я использовал большую часть кода из https://towardsdatascience.com/logistic-regression-from-scratch-in-r-b5b122fd8e83.

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

Не могли бы вы дать совет по этой проблеме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...