plot_cumulative_gain#

scikitplot.kds.plot_cumulative_gain(y_true, y_probas, *, class_index=1, title='Cumulative Gain Plot', ax=None, fig=None, figsize=None, title_fontsize='large', text_fontsize='medium', **kwargs)#

Generates the Decile-wise Lift Plot from labels and probabilities

The lift curve is used to determine the effectiveness of a binary classifier. A detailed explanation can be found at http://www2.cs.uregina.ca/~dbd/cs831/notes/lift_chart/lift_chart.html The implementation here works only for binary classification.

Parameters:
  • y_true (array-like of shape (n_samples,)) – Ground truth (correct) target values.

  • y_probas (array-like of shape (n_samples,) or (n_samples, n_classes)) – Predicted probabilities for each class or only target class probabilities. If 1D, it is treated as probabilities for the positive class in binary or multiclass classification with the class_index.

  • class_index (int, optional, default=1) – Index of the class of interest for multi-class classification. Ignored for binary classification.

  • title (str, optional, default='Cumulative Gain Curves') – Title of the generated plot.

  • ax (list of matplotlib.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). Axes like fig.add_subplot(1, 1, 1) or plt.gca()

  • fig (matplotlib.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).

    Added in version 0.3.9.

  • figsize (tuple of int, optional, default=None) – Size of the figure (width, height) in inches.

  • title_fontsize (str or int, optional, default='large') – Font size for the plot title.

  • text_fontsize (str or int, optional, default='medium') – Font size for the text in the plot.

Returns:

The axes with the plotted cumulative gain curves.

Return type:

matplotlib.axes.Axes

Notes

The implementation is specific to binary classification.

References

[1] http://mlwiki.org/index.php/Cumulative_Gain_Chart

Examples

>>> from sklearn.datasets import load_iris as data_3_classes
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> import scikitplot as skplt
>>> X, y = data_3_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_cumulative_gain(
>>>     y_val, y_probas, class_index=1,
>>> );

(Source code, png)

Cumulative Gain Curves