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).