plot_ks_statistic#

scikitplot.kds.plot_ks_statistic(y_true, y_probas, *, pos_label=None, class_index=1, title='KS Statistic Plot', title_fontsize='large', text_fontsize='medium', digits=2, data=None, **kwargs)[source]#

Generates the KS Statistic Plot from labels and probabilities

Kolmogorov-Smirnov (KS) statistic is used to measure how well the binary classifier model separates the Responder class (Yes) from Non-Responder class (No). The range of K-S statistic is between 0 and 1. Higher the KS statistic value better the model in separating the Responder class from Non-Responder class.

Parameters:
y_truearray-like, shape (n_samples)

Ground truth (correct) target values.

y_probasarray-like, shape (n_samples, n_classes)

Prediction probabilities for each class returned by a classifier.

class_indexint, optional, default=1

Index of the class of interest for multi-class classification. Ignored for binary classification.

titlestr, optional, default=’KS Statistic Plot’

Title of the generated plot.

title_fontsizestr or int, optional

Matplotlib-style fontsizes. Use e.g. “small”, “medium”, “large” or integer-values. Defaults to “large”.

text_fontsizestr or int, optional

Matplotlib-style fontsizes. Use e.g. “small”, “medium”, “large” or integer-values. Defaults to “medium”.

digitsint, optional

Number of digits for formatting output floating point values. Use e.g. 2 or 4. Defaults to 2.

Added in version 0.3.9.

**kwargsdict, optional

Generic keyword arguments.

Returns:
axmatplotlib.axes.Axes

The axes on which the plot was drawn.

Other Parameters:
axmatplotlib.axes.Axes, optional, default=None

The axis to plot the figure on. If None is passed in the current axes will be used (or generated if required).

figmatplotlib.pyplot.figure, optional, default: None

The figure to plot the Visualizer on. If None is passed in the current plot will be used (or generated if required).

figsizetuple, optional, default=None

Width, height in inches. Tuple denoting figure size of the plot e.g. (12, 5)

nrowsint, optional, default=1

Number of rows in the subplot grid.

ncolsint, optional, default=1

Number of columns in the subplot grid.

plot_stylestr, optional, default=None

Check available styles with “plt.style.available”. Examples include: [‘ggplot’, ‘seaborn’, ‘bmh’, ‘classic’, ‘dark_background’, ‘fivethirtyeight’, ‘grayscale’, ‘seaborn-bright’, ‘seaborn-colorblind’, ‘seaborn-dark’, ‘seaborn-dark-palette’, ‘tableau-colorblind10’, ‘fast’].

Added in version 0.4.0.

show_figbool, default=True

Show the plot.

save_figbool, default=False

Save the plot.

save_fig_filenamestr, optional, default=’’

Specify the path and filetype to save the plot. If nothing specified, the plot will be saved as png inside result_images under to the current working directory. Defaults to plot image named to used func.__name__.

verbosebool, optional

If True, prints debugging information.

See also

print_labels

A legend for the abbreviations of decile table column names.

decile_table

Generates the Decile Table from labels and probabilities.

plot_lift

Generates the Decile based cumulative Lift Plot from labels and probabilities.

plot_lift_decile_wise

Generates the Decile-wise Lift Plot from labels and probabilities.

plot_cumulative_gain

Generates the cumulative Gain Plot from labels and probabilities.

plot_ks_statistic

Generates the Kolmogorov-Smirnov (KS) Statistic Plot from labels and probabilities.

References

[1] tensorbored/kds

Examples

>>> from sklearn.datasets import (
...     load_breast_cancer as data_2_classes,
... )
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> import scikitplot as skplt
>>> X, y = data_2_classes(return_X_y=True, as_frame=False)
>>> X_train, X_val, y_train, y_val = train_test_split(
...     X, y, test_size=0.5, random_state=0
... )
>>> model = LogisticRegression(max_iter=int(1e5), random_state=0).fit(
...     X_train, y_train
... )
>>> y_probas = model.predict_proba(X_val)
>>> skplt.kds.plot_ks_statistic(
>>>     y_val, y_probas, class_index=1,
>>> );

(Source code, png)

KS Statistic Plot