Skip to content

interactions

Pairwise feature interaction encoding with pluggable binning strategies and WOE output.

Encoder

BinnedInteractionEncoder

BinnedInteractionEncoder(
    binner: QuantileBinner
    | OptimalBinner
    | PrecomputedBinner
    | OptimalBinning2D
    | None = None,
    pairs: list[tuple[str, str]] | None = None,
)

Bases: BaseEstimator, TransformerMixin

Source code in datasci_toolkit/interactions.py
def __init__(
    self,
    binner: QuantileBinner | OptimalBinner | PrecomputedBinner | OptimalBinning2D | None = None,
    pairs: list[tuple[str, str]] | None = None,
) -> None:
    self.binner = binner
    self.pairs = pairs

Binners

QuantileBinner

QuantileBinner(n_bins: int = 10)

Bases: BaseEstimator, TransformerMixin

Source code in datasci_toolkit/interactions.py
def __init__(self, n_bins: int = 10) -> None:
    self.n_bins = n_bins

OptimalBinner

Bases: BaseEstimator, TransformerMixin


PrecomputedBinner

PrecomputedBinner(
    bin_specs: dict[str, dict[str, Any]] | None = None,
)

Bases: BaseEstimator, TransformerMixin

Source code in datasci_toolkit/interactions.py
def __init__(self, bin_specs: dict[str, dict[str, Any]] | None = None) -> None:
    self.bin_specs = bin_specs

2D Optimal Binning

OptimalBinning2D

OptimalBinning2D(
    solver: str = "cp",
    monotonic_trend_x: str | None = None,
    monotonic_trend_y: str | None = None,
    min_bin_size: float | None = None,
    max_n_bins: int | None = None,
)

Bases: BaseEstimator, TransformerMixin

Source code in datasci_toolkit/interactions.py
def __init__(
    self,
    solver: str = "cp",
    monotonic_trend_x: str | None = None,
    monotonic_trend_y: str | None = None,
    min_bin_size: float | None = None,
    max_n_bins: int | None = None,
) -> None:
    self.solver = solver
    self.monotonic_trend_x = monotonic_trend_x
    self.monotonic_trend_y = monotonic_trend_y
    self.min_bin_size = min_bin_size
    self.max_n_bins = max_n_bins

ContinuousOptimalBinning2D

ContinuousOptimalBinning2D(
    solver: str = "cp",
    monotonic_trend_x: str | None = None,
    monotonic_trend_y: str | None = None,
    min_bin_size: float | None = None,
    max_n_bins: int | None = None,
)

Bases: BaseEstimator, TransformerMixin

Source code in datasci_toolkit/interactions.py
def __init__(
    self,
    solver: str = "cp",
    monotonic_trend_x: str | None = None,
    monotonic_trend_y: str | None = None,
    min_bin_size: float | None = None,
    max_n_bins: int | None = None,
) -> None:
    self.solver = solver
    self.monotonic_trend_x = monotonic_trend_x
    self.monotonic_trend_y = monotonic_trend_y
    self.min_bin_size = min_bin_size
    self.max_n_bins = max_n_bins