Перейти к содержанию

WindowStd

WindowStd(*, days: int)

Выборочное стандартное отклонение в окне.

Использование

transactions — обучающая таблица событий с бинарным target, одинаковым внутри каждого клиента.

from featminer import RelativeTime, one_to_many_pipeline
from featminer.formulas import WindowStd

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=(WindowStd(days=30),),
)

WindowStd(days=30) задаёт способ расчёта; pipeline подбирает совместимые колонки и условия. features содержит признаки, прошедшие отбор по таргету. age_days — возраст события в днях; меньший возраст означает более позднее событие (ascending=False).

Пример результата

Таблица событий df: client_id — ключ объекта, age_days — возраст события в днях относительно момента прогноза (0 — этот момент). Расчёт без дополнительной фильтрации строк. amount — сумма платежа.

client_id age_days amount
0 1 40 100
1 1 30 200
2 1 10 300
3 1 0 400

Значение этого кандидата по клиентам:

WindowStd
client_id
1 100
Эквивалентный расчёт на pandas

days — размер окна; обе границы включены. window — строки внутри окна. Используется выборочное отклонение (ddof=1).

days = 30
window = df.loc[df["age_days"].between(0, days)]
result = window.groupby("client_id")["amount"].std()

Параметры

Параметр Описание
days Размер окна, положительное целое число дней. Обязательный.
Стандартные значения 1, 7, 30, 90, 365, 730, 1095 дней.

Обязательные параметры не имеют значения по умолчанию; стандартные значения используются в готовых наборах.

Каталог формул.