IntervalMax
IntervalMax()
Максимальный интервал между соседними событиями.
Использование
transactions — обучающая таблица событий с бинарным target, одинаковым внутри каждого клиента.
from featminer import RelativeTime, one_to_many_pipeline
from featminer.formulas import IntervalMax
features = one_to_many_pipeline(
df=transactions,
aggregation_key="client_id",
target_col="target",
event_times=("age_days",),
relative_time_columns=(
RelativeTime("age_days", unit="day", ascending=False),
),
formulas=(IntervalMax(),),
)
IntervalMax() задаёт способ расчёта; pipeline подбирает совместимые колонки и условия. features содержит признаки, прошедшие отбор по таргету. age_days — возраст события в днях; меньший возраст означает более позднее событие (ascending=False).
Пример результата
Таблица событий df: client_id — ключ объекта, age_days — возраст события в днях относительно момента прогноза (0 — этот момент). Расчёт без дополнительной фильтрации строк.
| client_id | age_days | |
|---|---|---|
| 0 | 1 | 30 |
| 1 | 1 | 20 |
| 2 | 1 | 5 |
| 3 | 1 | 0 |
Значение этого кандидата по клиентам:
| IntervalMax | |
|---|---|
| client_id | |
| 1 | 15 |
Эквивалентный расчёт на pandas
ordered — события от старых к новым; intervals — промежутки между соседними событиями в днях: 10, 15, 5. Для первого события интервал отсутствует.