API Reference / preprocessing / discretization /

equal_frequency.py

QuantileDiscretizer transformer.

Equal-frequency binning for continuous features.

Classes

QuantileDiscretizer

class preprocessing.discretization.equal_frequency.QuantileDiscretizer(Transformer)

Discretize continuous features into equal-frequency bins.

Partition continuous data into bins such that each bin contains approximately the same number of samples.
Constructor
__init__(
    self,
    n_bins: int = 10,
    columns: Optional[List[int]] = None,
)

Overview

Quantile binning (equal-frequency) is more robust to skewed distributions than equal-width binning, as it adapts the bin widths to the density of the data.

Parameters

n_bins
int = 10
Number of bins to create.
columns
list of int
Indices of columns to discretize. If None, all columns are processed.

Attributes

bin_edges_
dict
Mapping of column index to the calculated quantile-based edges.

Discretize values into 5 equal-frequency bins:

python
>>> from tuiml.preprocessing.discretization import QuantileDiscretizer
>>> import numpy as np
>>> X = np.array([[1], [2], [3], [10], [11], [12], [20], [21]])
>>> discretizer = QuantileDiscretizer(n_bins=4)
>>> X_binned = discretizer.fit_transform(X)

Methods

get_parameter_schema (cls)
fit (self, X: np.ndarray, y: Optional[np.ndarray]=None, feature_names: Optional[List[str]]=None) -> 'QuantileDiscretizer'
transform (self, X: np.ndarray) -> np.ndarray
bin_edges_ (self)
__repr__ (self) -> str