Как называется алгоритм, использующий логлосс
Что проверяют
Ответа «логистическая регрессия» мало: интервьюер хочет услышать, почему именно логлосс, как он связан с правдоподобием и какие ещё модели его оптимизируют. Следом часто спрашивают, почему для классификации не берут MSE.
Как отвечать
Классический ответ: логистическая регрессия. Модель считает линейную комбинацию признаков, пропускает её через сигмоиду и получает вероятность класса. Логлосс, он же бинарная кросс-энтропия: -1/N * sum(y*log(p) + (1-y)*log(1-p)).
Что добавить:
- связь с правдоподобием: минимизировать логлосс то же самое, что максимизировать правдоподобие модели Бернулли. Поэтому это естественная функция потерь для вероятностного классификатора;
- выпуклость: для логистической регрессии логлосс выпуклый по весам, и градиентный спуск приходит к глобальному минимуму. Замкнутой формулы, как у МНК, нет, веса ищут численно. В
sklearn.linear_model.LogisticRegressionпо умолчанию решательlbfgsи L2-регуляризация сC=1.0; - градиент: производная логлосса по логиту равна
p - y, отсюда простые формулы обновления; - кто ещё: нейросети с сигмоидой или софтмаксом на выходе (многоклассовый случай это категориальная кросс-энтропия) и градиентный бустинг:
binary:logisticв XGBoost,Loglossв CatBoost,binaryв LightGBM.
Почему не MSE: в связке с сигмоидой она невыпуклая по весам, а градиент почти пропадает, когда модель уверенно ошибается. Логлосс такие ошибки наказывает сильно: p = 0.01 для верного класса даёт потерю около 4.6.
Как метрика это sklearn.metrics.log_loss. Она оценивает калибровку вероятностей, в отличие от ROC-AUC, которой важен только порядок.
Где спотыкаются
Называют логистическую регрессию алгоритмом регрессии. Это классификатор, а «регрессия» в названии про то, что линейно моделируется логарифм шансов.
Путают логлосс с accuracy. Две модели с одинаковой точностью могут сильно различаться по логлоссу, а при p ровно 0 потеря уходит в бесконечность, поэтому реализации обрезают вероятности малым эпсилоном.
Сравнивают логлосс на выборках с разным балансом классов. Без базовой линии, логлосса константного предсказания доли класса, цифра ничего не говорит.