features.from_stream
Онлайн-обёртка над tabular.build_features для инференс-сервиса.
Батч (predict_submission.py, train_catboost.py) и онлайн (inference_service.py) используют один и тот же feature-код из tabular.py — так гарантируется, что распределение фичей на train и в проде совпадает. Здесь только адаптер: приняли список пингов и слайс расписания → собрали одноточечный DataFrame → вернули dict фичей.
Использование:
from features.from_stream import build_features_online
feats = build_features_online(
sample={"sample_id": ..., "tr_id": ..., "T": ..., "target_stop_id": ...,
"target_time_begin": ..., "cur_dev_s": ...},
telemetry=[{"event_time": "...", "lon": ..., "lat": ..., "speed": ...,
"location_valid": "true", "is_hist_data": 0, "tr_id": ...}, ...],
schedule=[{"tt_action_item_id": ..., "time_begin": "...", "geom": "POINT (lon lat)",
"manual_fill": "false", "tr_id": ...}, ...],
route_of=None, # маппинг клон→прототип (для батча), в проде обычно None
)
Functions
|
Собрать фичи для одной точки прогноза из потоковых данных. |
- features.from_stream.build_features_online(sample: dict, telemetry: Iterable[dict], schedule: Iterable[dict], route_of: dict | None = None) pandas.DataFrame[исходный код]
Собрать фичи для одной точки прогноза из потоковых данных.
Возвращает DataFrame с одной строкой (index = sample_id) и колонками FEATURES. Дальше он передаётся в модель как есть.