Логистическая регрессия
Рассмотрим задачу классификации. Для простоты рассматрим бинарную классификацию: для каждого примера в обучающей выборке указан его класс: или . Нам нужно по признакам научиться восстанавливать класс.
Мы уже умеем предсказывать числа (решать задачу регрессии) с помощью модели Линейной регрессии. Самое простое — использовать её для предсказания классов? А именно, будем просто предсказывать эти и . Тут даже понятно как решать по предсказанному числу, какой это класс: если больше , то класс , иначе класс .
Этот подход работает, но он несколько противоестественный: предположим, наша модель предсказала для объекта класса значение . За такое предсказание она получит такой же штраф, как за предсказание :
Давайте попробуем придумать более естественную функцию потерь. Естественно считать, что чембольше предсказание нашей модели, тем сильнее она уверена, что объект принадлежит классу . Давайте попробуем интерпретировать предсказание модели как вероятность того, чтообъект принадлежит классу .
Модель (теоретически) может выдавать значения от минус до плюс бесконечности, значит нам нужно научиться превращать интервал в интервал . Такие функции называют сигмоидами — потому что они напоминают внешне букву . Наиболее стандартная такая функция называется логистической функцией и выглядит так:
Итак, можно считать, что если наша модель предсказывает для объекта число это означает, что — вероятность того, что объект принадлежит к классу .
Для данного примера класса вероятность того, что наша модель “угадает” значение всех элементов:
Мы хотим максимизировать эту вероятность. Работать с произведением неудобно, поэтому возьмем логарифм:
Из этого бы получилась отличная функция потерь, вот только функцию потерь мы хотим минимизировать, а эту функцию нужно максимизировать для лучшего результата. Поэтому умножим её на минус один.
Эта функция потерь называется . Оказывается, что её довольно просто оптимизировать.
Описанный нами алгоритм называется Логистическая регрессия. Это алгоритм бинарной классификации (а не регрессии, пусть название вас не путает):
- алгоритм предсказывает по модели линейной регрессии:
- от каждого значения считается сигмоида для предсказания вероятности:
- по этим вероятностям считается :
- параметры для модели подбираются так, чтобы именно этот логлосс и был минимален
- предсказание после этого делается так: если вероятность больше (то есть ), то это класс , иначе это класс .
Можно также представить, что вы пытаетесь разделить точки двух разных цветов с помощью плоскости. Все точки, оказавшиеся в одном полупространстве, вы предсказываете как класс , а в другом — как класс .