Кейс 4. Одинаковая точность – разный log loss

На практике часто ограничиваются метрикой accuracy – долей объектов, для которых модель дала правильный ответ. Это удобно, интуитивно и... опасно. В этом кейсе мы покажем ситуацию, где две модели имеют одинаковую точность, но при этом одна из них объективно лучше в терминах вероятностных предсказаний, и это видно только через loss-функцию.

Цель кейса

Понять, почему:

  • accuracy не отражает качество вероятностных предсказаний

  • loss-функция (в частности log loss) несёт больше информации

  • "уверенность модели" должна быть частью оценки качества

Сценарий

Представим бинарную классификацию. Есть четыре наблюдения с истинными метками:

$y = [1, 0, 1, 0];

Две модели выдают вероятности принадлежности к классу 1 (p(y=1x))(p(y = 1 | x)).

Модель A – уверенная:

$modelA = [0.9, 0.2, 0.9, 0.2];

Модель B – осторожная:

$modelB = [0.6, 0.4, 0.6, 0.4];

Если мы применим стандартный порог 0.5 (что типично для бинарной классификации), обе модели дадут одинаковые классы:

y

Model A

Model B

Предсказанный класс

1

0.9

0.6

1

0

0.2

0.4

0

1

0.9

0.6

1

0

0.2

0.4

0

Accuracy у обеих моделей равна 100%.

Реализация log loss

Используем стандартную бинарную log loss. Математически log loss определяется следующей формулой:

L=1Ni=1N[yilog(pi)+(1yi)log(1pi)]L = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log(p_i) + (1 - y_i)\log(1 - p_i) \right]

Результат будет примерно таким:

Что здесь произошло на самом деле

Обе модели:

  • сделали одинаковые классификационные решения

  • получили одинаковый accuracy

  • выглядят "равноценными", если смотреть только на классы

Но с точки зрения оценки вероятностей:

  • Model A делает уверенные предсказания: "Я почти уверена".

  • Model B даёт более осторожные оценки: "Я скорее думаю так, но не ручаюсь".

Log loss учитывает это различие.

Почему log loss считает Model A лучше

Log loss – это не просто мера ошибки, а штраф за несоответствие уверенности реальности.

Он:

  • поощряет высокую уверенность, если модель права

  • резко наказывает высокую уверенность, если модель ошиблась

  • делает честность вероятностей частью оптимизации

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

Таким образом, в этом кейсе

  • Model A: уверена и права, но получает меньший loss

  • Model B: менее уверена, хотя тоже права, и поэтому получает более высокий loss за менее информативные вероятности

Ключевой вывод

Accuracy отвечает на вопрос:

"Сколько раз модель угадала класс?"

Log loss отвечает на принципиально другой вопрос:

"Насколько можно доверять вероятностям, которые она выдаёт?"

Две модели могут быть одинаково точными, но не одинаково полезными.

Практический смысл

Этот кейс объясняет, почему:

  • в задачах скоринга, рекомендаций и риск-моделей accuracy почти бесполезен

  • loss-функция – это часть постановки задачи, а не техническая деталь

  • вероятности – это не побочный продукт модели, а основной результат

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

circle-info

Чтобы самостоятельно протестировать этот код, установите примеры из официального репозитория GitHubarrow-up-right или воспользуйтесь онлайн-демонстрациейarrow-up-right для его запуска.

Last updated