Простой пример для случая, когда логистическая регрессия не работает должным образом

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

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

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

Создадим имитацию набора данных для этой задачи:

Это очень упрощенная модель «Температура в помещении» - кондиционер добавляет 10 градусов к температуре снаружи, если на улице холодно, и снижает на 10 градусов, если на улице жарко. Горячий определяется как температура более 25 градусов. А если кондиционер выключен, температура в помещении такая же, как и на улице.

Разделите данные на тренировку и тест:

Обучите модель логистической регрессии:

Возьмите первые 10 тестовых примеров и посмотрите, что им предсказала модель:

Как мы видим, из 10 случаев 4 были предсказаны неверно.

Проверьте точность модели:

0.655

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

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

Итак, что мы можем сделать в таких случаях?

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

Давайте посмотрим, как он работает в первых 10 случаях из набора тестов:

Как мы видим, дерево решений правильно предсказало все 10 примеров.

И, если посчитать его точность:

1.0

Это означает, что дерево решений правильно предсказало все варианты набора тестов.

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

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

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

0.99

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