Является ли порог принятия решения гиперпараметром в логистической регрессии?


13

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

Но изменение порога изменит предсказанные классификации. Означает ли это, что порог является гиперпараметром? Если это так, то почему (например) невозможно легко выполнить поиск по сетке пороговых значений, используя метод scikit-learn GridSearchCV(как вы сделали бы для параметра регуляризации C).


1
«Как я понимаю, обычно 0,5 используется по умолчанию». Зависит от значения слова «типичный». На практике никто не должен этим заниматься.
Мэтью Друри


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

Ответы:


12

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

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

То, как вы думаете о слове «настройка» в контексте порога принятия решения, отличается от того, как настраиваются гиперпараметры. Изменение C и других гиперпараметров модели меняет модель (например, коэффициенты логистической регрессии будут отличаться), в то время как настройка порога может сделать только две вещи: обмен TP на FN и FP на TN. Тем не менее, модель остается той же, потому что это не меняет коэффициенты. (То же самое верно для моделей, которые не имеют коэффициентов, таких как случайные леса: изменение порога ничего не меняет в деревьях.) Таким образом, в узком смысле, вы правы, находя лучший компромисс между ошибками это «настройка», но вы ошибаетесь, думая, что изменение порога связано с другими гиперпараметрами модели способом, который оптимизируетсяGridSearchCV .

Иными словами, изменение порога принятия решения отражает ваш выбор относительно того, сколько ложных положительных и отрицательных отрицательных значений вы хотите иметь. Рассмотрим гипотетическое, что вы устанавливаете порог принятия решения на абсолютно неправдоподобное значение, такое как -1. Все вероятности неотрицательны, поэтому с этим порогом вы будете предсказывать «положительный» для каждого наблюдения. С определенной точки зрения, это здорово, потому что ваш ложноотрицательный коэффициент равен 0,0. Тем не менее, ваш уровень ложных срабатываний также находится на пределе 1,0, поэтому в этом смысле ваш выбор порога в -1 ужасен.

Идеально, конечно, иметь TPR 1,0, FPR 0,0 и FNR 0,0. Но это обычно невозможно в реальных приложениях, поэтому возникает вопрос: «Сколько FPR я готов принять за сколько TPR?» И это мотивация кривых.


Спасибо за ответ @Sycorax. Вы почти убедили меня. Но разве мы не можем формализовать идею «сколько FPR я готов принять за сколько TPR»? например, с использованием матрицы затрат. Если бы у нас была матрица затрат, то не было бы желательно найти оптимальный порог с помощью настройки, как вы бы настроили гиперпараметр? Или есть лучший способ найти оптимальный порог?
Ник

1
СGridSearchCV

@Sycorax Разве порог и перехват (термин смещения) не делают в основном то же самое? Т.е. вы можете удерживать пороговое значение на уровне 0,5, но соответствующим образом изменить перехват; это «изменит модель» (согласно вашему последнему комментарию), но будет иметь идентичный эффект с точки зрения бинарных предсказаний. Это верно? Если это так, я не уверен, что строгое различие между «изменением модели» и «изменением правила принятия решений» имеет столь важное значение в этом случае.
говорит амеба, восстанови Монику

@amoeba Это провокационное замечание. Я должен рассмотреть это. Я полагаю, что ваше предложение сводится к тому, чтобы «поддерживать порог на уровне 0,5 и рассматривать перехват как гиперпараметр, который вы настраиваете». Там нет ничего математически, чтобы помешать вам сделать это, кроме наблюдения, что модель больше не максимизирует свою вероятность. Но достижение MLE не может быть приоритетом в каком-то конкретном контексте.
Sycorax сообщает восстановить Monica

10

Но изменение порога изменит предсказанные классификации. Означает ли это, что порог является гиперпараметром?

Да, это так, Сорта. Это гиперпараметр вашего правила принятия решений , но не основная регрессия.

Если да, то почему (например) невозможно легко выполнить поиск по сетке пороговых значений, используя метод GridSearchCV scikit-learn (как вы это сделали бы для параметра регуляризации C).

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

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


Я также разделяю ваш скептицизм predictвыбора метода по умолчанию, равного 0,5, в качестве порогового значения, но он GridSearchCVпринимает scorerобъекты, которые могут настраивать модели с учетом потери перекрестной энтропии вне выборки. Я скучаю по твоей точке?
Sycorax сообщает, что восстановит Монику

Правильно, согласился, что это лучшая практика, но она не побуждает пользователей настраивать пороги принятия решений.
Мэтью Друри

Попался. Я понимаю что ты имеешь в виду!
Sycorax говорит восстановить Monica

1
@Sycorax попытался отредактировать, чтобы уточнить!
Мэтью Друри
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.