Balanced Binning Reference

Frequently, machine learning problems in the real world suffer from the curse of dimensionality; you have fewer training instances than you’d like and the predictive signal is distributed (often unpredictably!) across many different features.

Sometimes when the your target variable is continuously-valued, there simply aren’t enough instances to predict these values to the precision of regression. In this case, we can sometimes transform the regression problem into a classification problem by binning the continuous values into makeshift classes.

To help the user select the optimal number of bins, the BalancedBinningReference visualizer takes the target variable y as input and generates a histogram with vertical lines indicating the recommended value points to ensure that the data is evenly distributed into each bin.

from yellowbrick.datasets import load_concrete
from import BalancedBinningReference

# Load the concrete dataset
X, y = load_concrete()

# Instantiate the visualizer
visualizer = BalancedBinningReference()        # Fit the data to the visualizer        # Finalize and render the figure

(Source code, png, pdf)

BalancedBinningReference on concrete dataset

See also

To learn more, please read Rebecca Bilbro’s article “Creating Categorical Variables from Continuous Data.”

API Reference

Implements histogram with vertical lines to help with balanced binning.

class, target=None, bins=4, **kwargs)[source]


BalancedBinningReference generates a histogram with vertical lines showing the recommended value point to bin your data so they can be evenly distributed in each bin.

axmatplotlib Axes, default: None

This is inherited from FeatureVisualizer and is defined within BalancedBinningReference.

targetstring, default: “y”

The name of the y variable

binsnumber of bins to generate the histogram, default: 4

Keyword arguments that are passed to the base class and may influence the visualization as defined in other Visualizers.


These parameters can be influenced later on in the visualization process, but can and should be set as early as possible.


>>> visualizer = BalancedBinningReference()
bin_edges_binning reference values
draw(self, y, **kwargs)[source]

Draws a histogram with the reference value for binning as vertical lines.

yan array of one dimension or a pandas Series
finalize(self, **kwargs)[source]

Adds the x-axis label and manages the tick labels to ensure they’re visible.

kwargs: generic keyword arguments.


Generally this method is called from show and not directly by the user.

fit(self, y, **kwargs)[source]

Sets up y for the histogram and checks to ensure that y is of the correct data type. Fit calls draw.

yan array of one dimension or a pandas Series

keyword arguments passed to scikit-learn API.