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

one_to_one_pipeline

featminer.pipelines.one_to_one.one_to_one_pipeline

one_to_one_pipeline(
    features: DataFrame,
    target_series: Series,
    operators: tuple[
        OperatorSymbol, ...
    ] = DEFAULT_OPERATORS,
    selection: SelectionConfig | None = None,
    low_cardinality_int_threshold: int = 2,
    max_rows_threshold: int = 10000,
    formulas: FormulaSet
    | Sequence[OneToOneFormulaClass] = "basic",
    generate_report: bool = True,
    open_browser: bool = True,
    verbose: Literal[
        "off", "warning", "info", "debug"
    ] = "info",
) -> pd.DataFrame

Генерирует и отбирает парные взаимодействия признаков в плоской таблице, где одна строка соответствует одному объекту.

Параметры

Параметр По умолчанию Описание
features Исходная таблица числовых признаков с одной строкой на объект.
target_series Бинарный таргет с индексом, совпадающим с индексом features.
operators DEFAULT_OPERATORS Допустимые операции: +, -, *, /, max, min, normalized_difference, normalized_distance, l2_norm, harmonic_mean, q99_scaled_sum. Реально используемые операции дополнительно ограничиваются выбранными formulas.
selection None Политика отбора. None внутри pipeline преобразуется в OneToOneSelectionConfig.auc(). Базовый SelectionConfig тоже принимается и дополняется улучшением AUC по умолчанию. Pipeline поддерживает только отбор и сравнение по AUC.
low_cardinality_int_threshold 2 Максимальное число уникальных значений, при котором целочисленная колонка считается низкокардинальной и исключается из генерации парных признаков.
max_rows_threshold 10_000 Максимальное число строк, используемых при поиске взаимодействий.
formulas "basic" Формулы для генерации: быстрый набор "basic", дополнительный "advanced", объединяющий их "all" или явная последовательность классов формул. Расширение набора может повысить качество ценой времени расчёта.
generate_report True Формировать HTML-отчёты и воспроизводимый Python-код. Если False, отчёты не создаются, а open_browser игнорируется.
open_browser True Открывать сформированные HTML-отчёты в браузере.
verbose "info" Уровень журналирования: "off", "warning", "info" или "debug".

Пример явной настройки отбора:

from featminer import OneToOneSelectionConfig
from featminer.pipelines.one_to_one import one_to_one_pipeline

features = one_to_one_pipeline(
    features=one_to_one_df,
    target_series=target,
    selection=OneToOneSelectionConfig.auc(
        minimum=0.55,
        auc_improvement_threshold=0.03,
        feature_correlation_threshold=0.7,
    ),
)

Список формул

Формула Набор Что считает
PlusInteraction basic Сумму двух колонок: left + right.
MinusInteraction basic Разность двух колонок: left - right.
MultiplyInteraction basic Произведение двух колонок: left * right.
DivisionInteraction basic Отношение двух колонок: left / right; порядок колонок важен.
MaxInteraction basic Максимум из двух колонок построчно.
MinInteraction basic Минимум из двух колонок построчно.
NormalizedDifferenceInteraction advanced Нормированную разность (left - right) / (abs(left) + abs(right)).
NormalizedDistanceInteraction advanced Нормированное расстояние abs(left - right) / (abs(left) + abs(right)).
L2NormInteraction advanced Евклидову норму пары колонок: sqrt(left² + right²).
HarmonicMeanInteraction advanced Гармоническое среднее пары колонок.
Q99ScaledSumInteraction advanced Сумму колонок после масштабирования каждой на её 99-й перцентиль по модулю.
Plus3Interaction advanced Сумму трёх колонок.
Max3Interaction advanced Максимум из трёх колонок построчно.
Min3Interaction advanced Минимум из трёх колонок построчно.

formulas="all" объединяет basic и advanced. Для точного контроля можно передать классы напрямую: formulas=(PlusInteraction, L2NormInteraction).