Регексы названия улицы в _parse_street_house пускали ведущую цифру только через
пробел («8 Марта»), а через дефис нет. «40-летия Комсомола», «22-го Партсъезда»,
«3-го Интернационала» разбирались так:
- avito «ул. 40-летия Комсомола,32Г» и yandex — ('', ''), дедупа нет вовсе;
- cian «мкр. ЖБИ, улица 40-летия Комсомола, 8А» — ('mkr жби', '40'): все дома
улицы получали один ключ и дом «40», разные квартиры с одинаковыми
этажом/площадью/ценой сливались в одну;
- domklik «60-летия Октября проспект» — ('октября', …).
Фикс: (?:\d+\s+)? → (?:\d+(?:\s+|-))? в _DEDUP_STREET_NAME_RE и
_DEDUP_STREET_NAME_SUFFIX_RE. На 5310 живых адресах прода с «цифра-буква»
меняется разбор у 730 объявлений, все новые токены — реальные нумерованные
улицы (14 штук, от «40-летия комсомола» до «2-ая новосибирская»).
Бэктест-гейт: baseline перегенерирован. В реплее дедуп включён (как на захвате),
поэтому правка разбора сдвигает пул: изменились 99 из 1600 сделок, у 48 ошибка
меньше, у 51 больше. expected_sold MAPE 15.88→15.92, покрытие вилки 1056→1057,
headline не сдвинулся.
Refs #2291
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
192 lines
3.9 KiB
JSON
192 lines
3.9 KiB
JSON
{
|
|
"calibration": {
|
|
"high": {
|
|
"coverage_pct": 75.0,
|
|
"mape_pct": 19.97,
|
|
"n": 8,
|
|
"n_covered": 6
|
|
},
|
|
"low": {
|
|
"coverage_pct": 83.67,
|
|
"mape_pct": 15.64,
|
|
"n": 1562,
|
|
"n_covered": 1030
|
|
},
|
|
"medium": {
|
|
"coverage_pct": 70.0,
|
|
"mape_pct": 26.53,
|
|
"n": 30,
|
|
"n_covered": 21
|
|
}
|
|
},
|
|
"confidence_order": [
|
|
"high",
|
|
"medium",
|
|
"low"
|
|
],
|
|
"expected_sold": {
|
|
"overall": {
|
|
"mape_pct": 15.92,
|
|
"median_bias_pct": 2.87,
|
|
"n": 1269,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -10.94,
|
|
"p75_pct": 22.81
|
|
},
|
|
"per_area_bucket": {
|
|
"0 <30": {
|
|
"mape_pct": 19.76,
|
|
"median_bias_pct": -1.02,
|
|
"n": 161,
|
|
"p25_pct": -16.45,
|
|
"p75_pct": 34.7
|
|
},
|
|
"1 30-44": {
|
|
"mape_pct": 15.64,
|
|
"median_bias_pct": 4.37,
|
|
"n": 503,
|
|
"p25_pct": -10.56,
|
|
"p75_pct": 22.86
|
|
},
|
|
"2 44-62": {
|
|
"mape_pct": 13.93,
|
|
"median_bias_pct": 4.13,
|
|
"n": 379,
|
|
"p25_pct": -8.12,
|
|
"p75_pct": 23.5
|
|
},
|
|
"3 62-85": {
|
|
"mape_pct": 15.97,
|
|
"median_bias_pct": -2.33,
|
|
"n": 179,
|
|
"p25_pct": -11.99,
|
|
"p75_pct": 18.18
|
|
},
|
|
"4 >=85": {
|
|
"mape_pct": 20.46,
|
|
"median_bias_pct": -4.97,
|
|
"n": 47,
|
|
"p25_pct": -26.03,
|
|
"p75_pct": 7.15
|
|
}
|
|
},
|
|
"per_rooms": {
|
|
"0": {
|
|
"label": "студия",
|
|
"mape_pct": 19.76,
|
|
"median_bias_pct": -1.02,
|
|
"n": 161,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -16.45,
|
|
"p75_pct": 34.7
|
|
},
|
|
"1": {
|
|
"label": "1к",
|
|
"mape_pct": 15.64,
|
|
"median_bias_pct": 4.37,
|
|
"n": 503,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -10.56,
|
|
"p75_pct": 22.86
|
|
},
|
|
"2": {
|
|
"label": "2к",
|
|
"mape_pct": 13.93,
|
|
"median_bias_pct": 4.13,
|
|
"n": 379,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -8.12,
|
|
"p75_pct": 23.5
|
|
},
|
|
"3": {
|
|
"label": "3к",
|
|
"mape_pct": 15.97,
|
|
"median_bias_pct": -2.33,
|
|
"n": 179,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -11.99,
|
|
"p75_pct": 18.18
|
|
},
|
|
"4": {
|
|
"label": "4+",
|
|
"mape_pct": 20.46,
|
|
"median_bias_pct": -4.97,
|
|
"n": 47,
|
|
"n_no_analogs": 0,
|
|
"p25_pct": -26.03,
|
|
"p75_pct": 7.15
|
|
}
|
|
},
|
|
"per_segment": {
|
|
"бизнес": {
|
|
"mape_pct": 19.58,
|
|
"median_bias_pct": -19.58,
|
|
"n": 144,
|
|
"p25_pct": -27.32,
|
|
"p75_pct": -12.79
|
|
},
|
|
"комфорт": {
|
|
"mape_pct": 10.69,
|
|
"median_bias_pct": -5.78,
|
|
"n": 425,
|
|
"p25_pct": -15.98,
|
|
"p75_pct": 4.54
|
|
},
|
|
"премиум": {
|
|
"mape_pct": null,
|
|
"median_bias_pct": null,
|
|
"n": 0,
|
|
"p25_pct": null,
|
|
"p75_pct": null
|
|
},
|
|
"эконом": {
|
|
"mape_pct": 20.22,
|
|
"median_bias_pct": 18.98,
|
|
"n": 697,
|
|
"p25_pct": 0.96,
|
|
"p75_pct": 42.31
|
|
},
|
|
"элит": {
|
|
"mape_pct": 36.11,
|
|
"median_bias_pct": -36.11,
|
|
"n": 3,
|
|
"p25_pct": -44.21,
|
|
"p75_pct": -32.72
|
|
}
|
|
}
|
|
},
|
|
"headline": {
|
|
"ask_median_ppm2": 136721.80831284,
|
|
"deal_median_ppm2": 115770.5,
|
|
"spread_pct": 18.1
|
|
},
|
|
"range_coverage": {
|
|
"overall": {
|
|
"coverage_pct": 83.29,
|
|
"n": 1269,
|
|
"n_covered": 1057
|
|
},
|
|
"per_confidence": {
|
|
"high": {
|
|
"coverage_pct": 75.0,
|
|
"n": 8,
|
|
"n_covered": 6
|
|
},
|
|
"low": {
|
|
"coverage_pct": 83.67,
|
|
"n": 1231,
|
|
"n_covered": 1030
|
|
},
|
|
"medium": {
|
|
"coverage_pct": 70.0,
|
|
"n": 30,
|
|
"n_covered": 21
|
|
}
|
|
}
|
|
},
|
|
"sharpness": {
|
|
"median_rel_width": 0.743,
|
|
"n": 1269
|
|
},
|
|
"unrecorded_lookup_calls": 0
|
|
}
|