Выключить гедоническую коррекцию — она стала чистым занижением цены #3538

Merged
lekss361 merged 1 commit from fix/hedonic-correction-off into main 2026-09-16 16:43:13 +00:00

1 commit

Author SHA1 Message Date
bot-backend
7472887026 fix(estimator): выключить гедоническую коррекцию — она стала чистым занижением
All checks were successful
CI Trade-In / backend-tests (pull_request) Successful in 5m3s
CI Trade-In / changes (pull_request) Successful in 12s
CI / changes (pull_request) Successful in 15s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
Коррекция #2002 двигает точку expected_sold множителем
exp(b0 + b_year*(year-2000)/20 - 0.0745*[floor==1]); b_larea намеренно 0
с #2620. Для дома 1980 года фактор 0.913, то есть минус 8.7%, а жилой
фонд в выборке преимущественно старый — значит фактор систематически
меньше единицы и просто снимает с цены проценты.

Контролируемый замер на проде: одна и та же выборка, один seed, меняется
ровно эта переменная (--engine full --sample 2000 --since 2025-06-01
--spread scattered --seed 42 --resolve-house-id).

  регион            ВКЛ bias/MAPE/покрытие   ВЫКЛ bias/MAPE/покрытие
  77 Москва          -9.1 / 20.5 / 69.0       -4.1 / 19.7 / 71.2
  50 область        -12.1 / 19.4 / 75.4      -10.4 / 19.2 / 74.8
  66 обл. целиком   -17.1 / 23.0 / 66.7      -12.4 / 23.2 / 66.2
  66 только ЕКБ     -17.4 / 21.2 / 69.8      -14.2 / 21.3 / 69.9

Занижение уходит везде, точность при этом не меняется. Четвёртая строка
решающая: ЕКБ — ровно та выборка, на которой коэффициенты перефитили
30.08.2026 (#3248, n=1269), и даже там выключение снимает 3.2 пункта.

Замороженный базлайн пересобран и двигается В ДРУГУЮ СТОРОНУ: overall
bias -1.61 -> +2.87, MAPE 14.28 -> 15.88, покрытие 87.41 -> 83.59. Это не
противоречие, а та же причина с другой стороны: фикстура содержит ровно
1269 сделок, на которых коэффициенты и фитили, поэтому гейт меряет там
качество подгонки на данных подгонки. Помогает в выборке фита, мешает
везде вне её — это и есть переобучение.

Флаг оставлен, значения коэффициентов не тронуты. Включать обратно только
вместе с перефитом и повторным замером всех четырёх строк.
2026-09-16 19:34:08 +03:00