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

Mode

Mode()

Самое частое значение.

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

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

from featminer import one_to_many_pipeline
from featminer.formulas import Mode

features = one_to_many_pipeline(
    df=transactions,
    aggregation_key="client_id",
    target_col="target",
    formulas=(Mode(),),
)

Mode() задаёт способ расчёта; pipeline подбирает совместимые колонки и условия. features содержит признаки, прошедшие отбор по таргету.

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

Таблица платежей df: client_id — ключ объекта, amount — сумма платежа. Расчёт без дополнительного условия.

client_id amount
0 1 10
1 1 20
2 1 20
3 1 40
4 1 NaN

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

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

При одинаковой частоте выбирается первое значение в порядке сортировки. В примере у каждого клиента есть непустые значения.

result = df.groupby("client_id")["amount"].agg(lambda x: x.mode().iloc[0])

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