make_kbins_discretizer#

scikitplot.feature_selection.make_kbins_discretizer(schema, columns=None, *, encode='ordinal', **kwargs)[source]#

Build a KBinsDiscretizer with the recommended per-feature bin counts.

Parameters:
schemaFeatureSchema

A fitted schema with binning recommendations.

columnssequence of str or None, default=None

Columns to bin; None takes every suitable feature in schema order.

encode{“ordinal”, “onehot”, “onehot-dense”}, default=”ordinal”

Passed to KBinsDiscretizer.

**kwargs

Other KBinsDiscretizer arguments (subsample, quantile_method …). strategy defaults to the policy’s strategy.

Returns:
columnslist of str

Columns the discretizer applies to, in order (use them in a ColumnTransformer).

discretizersklearn.preprocessing.KBinsDiscretizer

Unfitted discretizer with n_bins set per column.

Raises:
ValueError

If a requested column is not suitable for binning or no column is.

Parameters:
Return type:

tuple[list[str], Any]

Examples

>>> import numpy as np, pandas as pd
>>> from scikitplot.feature_selection import (
...     profile_features,
...     make_kbins_discretizer,
... )
>>> X = pd.DataFrame({"x": np.random.default_rng(0).gamma(2.0, size=500)})
>>> cols, kb = make_kbins_discretizer(profile_features(X))
>>> cols, int(kb.n_bins[0]) > 1
(['x'], True)