Комментарии 2
Здесь особенно показательно, что число “39” не изменилось, а сама популяция почти полностью сменилась. Я бы сохранял вместе с каждой метрикой не только версию модели и датасета, но и хеш или снимок правила включения объектов в оценку. Иначе одинаковое название метрики скрывает разные эксперименты. Тогда ухудшение на 20% можно объяснить формально: что изменилось из-за модели, что — из-за состава парковок, а что — из-за более честного определения доступных данных.
Про «39 не изменилось, а популяция сменилась» — за сутки после публикации стало ещё нагляднее. Пересчитал сегодня: молчащих уже 40. У парковки id=83 истекли 30 дней с последнего свободного места. Правило не менялось, код не менялся, состав сдвинулся сам.
Сделал, как вы предлагаете. Бэктест теперь пишет рядом с метриками отпечаток выборки: правило, размер и sha256 отсортированных id, реально попавших в оценку. Хеширую именно разрешённый состав, а не текст правила — текст у меня как раз совпадал год подряд, а состав разошёлся до пересечения в девять парковок из тридцати девяти. Заодно вынес скрипт замера из /tmp в репозиторий, потому что замер оттуда невоспроизводим по определению.

Метрика стала хуже на 20%, и вот почему так правильно