CalibrationDisplay#

class sklearn.calibration.CalibrationDisplay(prob_true, prob_pred, y_prob, *, estimator_name=None, pos_label=None)#

校准曲线(也称为可靠性图)可视化。

建议使用 from_estimatorfrom_predictions 来创建一个 CalibrationDisplay 。所有参数都存储为属性。

用户指南 中阅读更多关于校准的信息, 并在 可视化 中了解更多关于 scikit-learn 可视化 API 的信息。

Added in version 1.0.

Parameters:
prob_truendarray of shape (n_bins,)

每个 bin 中样本类别为正类的比例(正类分数)。

prob_predndarray of shape (n_bins,)

每个 bin 中的平均预测概率。

y_probndarray of shape (n_samples,)

每个样本的正类概率估计。

estimator_namestr, default=None

估计器的名称。如果为 None,则不显示估计器名称。

pos_labelint, float, bool or str, default=None

计算校准曲线时的正类。 默认情况下,使用 from_estimator 时, pos_label 设置为 estimators.classes_[1] , 使用 from_predictions 时,设置为 1。

Added in version 1.1.

Attributes:
line_matplotlib Artist

校准曲线。

ax_matplotlib Axes

带有校准曲线的轴。

figure_matplotlib Figure

包含曲线的图形。

See also

calibration_curve

计算校准曲线的真实和预测概率。

CalibrationDisplay.from_predictions

使用真实和预测标签绘制校准曲线。

CalibrationDisplay.from_estimator

使用估计器和数据绘制校准曲线。

Examples

>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.calibration import calibration_curve, CalibrationDisplay
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, random_state=0)
>>> clf = LogisticRegression(random_state=0)
>>> clf.fit(X_train, y_train)
LogisticRegression(random_state=0)
>>> y_prob = clf.predict_proba(X_test)[:, 1]
>>> prob_true, prob_pred = calibration_curve(y_test, y_prob, n_bins=10)
>>> disp = CalibrationDisplay(prob_true, prob_pred, y_prob)
>>> disp.plot()
<...>
classmethod from_estimator(estimator, X, y, *, n_bins=5, strategy='uniform', pos_label=None, name=None, ref_line=True, ax=None, **kwargs)#

绘制使用二分类器和数据绘制校准曲线。

校准曲线,也称为可靠性图,使用来自二分类器的输入,并绘制每个箱子的平均预测概率与正类别的比例,在y轴上。

额外的关键字参数将被传递给:func:matplotlib.pyplot.plot

在:ref:用户指南<calibration> 中阅读更多关于校准的信息,并在:ref:可视化 中阅读更多关于scikit-learn可视化API的信息。

Added in version 1.0.

Parameters:
estimatorestimator实例

拟合的分类器或拟合的:class:~sklearn.pipeline.Pipeline ,其中最后一个估计器是分类器。分类器必须有一个:term:predict_proba 方法。

X{array-like, sparse matrix},形状为(n_samples, n_features)

输入值。

yarray-like,形状为(n_samples,)

二元目标值。

n_binsint, 默认=5

在计算校准曲线时,将[0, 1]区间离散化为箱子的数量。数量越大,需要的数据越多。

strategy{‘uniform’, ‘quantile’}, 默认=’uniform’

用于定义箱子宽度的策略。

  • 'uniform' : 箱子具有相同的宽度。

  • 'quantile' : 箱子具有相同数量的样本,并取决于预测概率。

pos_labelint, float, bool 或 str, 默认=None

计算校准曲线时的正类。默认情况下, estimators.classes_[1] 被视为正类。

Added in version 1.1.

namestr, 默认=None

用于标记曲线的名称。如果为 None ,则使用估计器的名称。

ref_linebool, 默认=True

如果为 True ,绘制一条代表完美校准分类器的参考线。

axmatplotlib axes, 默认=None

要绘制的轴对象。如果为 None ,则创建一个新的图形和轴。

**kwargsdict

要传递给:func:matplotlib.pyplot.plot 的关键字参数。

Returns:
displayCalibrationDisplay

存储计算值的对象。

See also

CalibrationDisplay.from_predictions

使用真实标签和预测标签绘制校准曲线。

Examples

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.calibration import CalibrationDisplay
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, random_state=0)
>>> clf = LogisticRegression(random_state=0)
>>> clf.fit(X_train, y_train)
LogisticRegression(random_state=0)
>>> disp = CalibrationDisplay.from_estimator(clf, X_test, y_test)
>>> plt.show()
../../_images/sklearn-calibration-CalibrationDisplay-1.png
classmethod from_predictions(y_true, y_prob, *, n_bins=5, strategy='uniform', pos_label=None, name=None, ref_line=True, ax=None, **kwargs)#

绘制使用真实标签和预测概率的校准曲线。

校准曲线,也称为可靠性图,使用来自二分类器的输入,并在y轴上绘制每个箱子的平均预测概率与正类别的比例。

额外的关键字参数将被传递给:func:matplotlib.pyplot.plot

在:ref:用户指南<calibration> 中阅读更多关于校准的信息,并在:ref:可视化 中阅读更多关于scikit-learn可视化API的信息。

Added in version 1.0.

Parameters:
y_true形状为(n_samples,)的类数组

真实标签。

y_prob形状为(n_samples,)的类数组

正类别的预测概率。

n_binsint, 默认=5

在计算校准曲线时,将[0, 1]区间离散化为箱子的数量。数量越大,需要的数据越多。

strategy{‘uniform’, ‘quantile’}, 默认=’uniform’

用于定义箱子宽度的策略。

  • 'uniform' : 箱子具有相同的宽度。

  • 'quantile' : 箱子具有相同数量的样本,并取决于预测概率。

pos_labelint, float, bool 或 str, 默认=None

计算校准曲线时的正类别。默认情况下, pos_label 设置为1。

Added in version 1.1.

namestr, 默认=None

用于标记曲线的名称。

ref_linebool, 默认=True

如果为 True ,绘制一条代表完美校准分类器的参考线。

axmatplotlib轴, 默认=None

要在其上绘制的轴对象。如果为 None ,则创建一个新的图形和轴。

**kwargsdict

要传递给:func:matplotlib.pyplot.plot 的关键字参数。

Returns:
displayCalibrationDisplay

存储计算值的对象。

See also

CalibrationDisplay.from_estimator

使用估计器和数据绘制校准曲线。

Examples

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_classification
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.calibration import CalibrationDisplay
>>> X, y = make_classification(random_state=0)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, random_state=0)
>>> clf = LogisticRegression(random_state=0)
>>> clf.fit(X_train, y_train)
LogisticRegression(random_state=0)
>>> y_prob = clf.predict_proba(X_test)[:, 1]
>>> disp = CalibrationDisplay.from_predictions(y_test, y_prob)
>>> plt.show()
../../_images/sklearn-calibration-CalibrationDisplay-2.png
plot(*, ax=None, name=None, ref_line=True, **kwargs)#

绘图可视化。

额外的关键字参数将被传递给 matplotlib.pyplot.plot

Parameters:
axMatplotlib Axes, 默认=None

要在其上绘制的Axes对象。如果为 None ,则创建一个新的图形和轴。

namestr, 默认=None

用于标记曲线的名称。如果为 None ,则使用 estimator_name (如果 estimator_name 不为 None ),否则不显示标记。

ref_linebool, 默认=True

如果为 True ,则绘制一条表示完美校准分类器的参考线。

**kwargsdict

要传递给 matplotlib.pyplot.plot 的关键字参数。

Returns:
displayCalibrationDisplay

存储计算值的对象。