TGViewer
Wazowski Recommends Wazowski Recommends @wazowskirecommends · 2.67K subscribers
Post #8 1.88K
Ну, тогда — по просьбам читателей.

Начну с примера из личного опыта. Когда-то я занимался проектом по прогнозированию некоторого value (скажем, денег), которое нам будут приносить пользователи за определенный период в будущем. Если посмотреть на распределение этой величины по пользователям, то оно получается очень сильно перекошенным. Существенная часть пользователей приносили 0, а у остальных распределение было похоже на логнормальное. (Кстати, на практике оказалось полезным независимо предсказывать вероятность того, что value будет больше 0, и матожидание этого value при условии его положительности, а потом перемножать.)

Получается, что при обучении модели в обычном режиме (с MSE-лоссом) мы штрафуем модель за предсказание 1 вместо правильного ответа 2 и за предсказание 99 вместо правильного ответа 100 одинаково. И это, на первый вгляд, не очень интуитивно. Был великий соблазн прологарифмировать все таргеты и уже потом обучить модель, а при применении брать экспоненту от предсказания. Тогда как раз штраф за предсказание вдвое больше или вдвое меньше таргета будет одинаковым, независимо от таргета. Так вот, так делать нельзя. Если так сделать и потом, например, просуммировать экспоненты от предсказаний для всех пользователей, то получится заметно меньше, чем на самом деле. Мы, правда, по-моему, даже пробовать так не стали, заранее подумав про этот эффект.

Почему так? Всё очень просто. Когда модель обучается в режиме стандартной регрессии (т.е. с MSE-лоссом), то она в каждой точке пространства признаков пытается предсказать условное матожидание:
E(y|x)
. А если сделать этот “трюк” с логарифмированием, то мы получим
exp(E(log y|x))
. Экспонента — выпуклая функция, поэтому
exp(E(log y|x)) < E(exp(log y)|x) = E(y|x)
. Т.е. такое предсказание будет заниженным.

Если совсем на примере показывать, то представьте, что в одной и той же точке пространства (т.е. с очень близкими фичами) есть два примера: один с ответом 1 и один с ответом 4. Если сначала прологарифмировать, то получим таргеты 0 и 2 (будем считать, что логарифм двоичный, ну или можно умножить на
ln 2
). Тогда модель в этой точке будет предсказывать их среднее, т.е. 1 (конечно, если у неё достаточно свободы). И при возвращении к исходной шкале будет 2. Хотя понятно, что несмещенным было бы предсказание (1 + 4) / 2 = 2.5.

Я даже подобную задачу когда-то на собеседованиях спрашивал. Не все правильно отвечали.
  • 🍓 13
  • 👍 8
More from @wazowskirecommends
  1. May 22, 2026Прошлая lifestory была больше года назад. Ну ничего, продолжаем. Вернувшись со второй стаж…
  2. Apr 26, 2026Давно не писал — много работы, не хватало ни сил, ни вдохновения. Но сейчас лечу на неделю…
  3. Jan 6, 2026Вместо итогов года, хочу поделиться моим списком лучших — самых значимых или просто понрав…
  4. Dec 24, 2025Регрессия и распределение шума В задачах регрессии обычно предполагают, что есть какая-то…
  5. Sep 20, 2025❤️📱📱📱
  6. Sep 20, 2025На этой неделе я начал работать в организации-которую-нельзя-называть-без-звёздочки. По мн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →