CalibrationDisplay#
- class sklearn.calibration.CalibrationDisplay(prob_true, prob_pred, y_prob, *, estimator_name=None, pos_label=None)#
校准曲线(也称为可靠性图)可视化。
建议使用
from_estimator
或from_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:
- display
CalibrationDisplay
。 存储计算值的对象。
- display
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()
- 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:
- display
CalibrationDisplay
。 存储计算值的对象。
- display
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()
- 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:
- display
CalibrationDisplay
存储计算值的对象。
- display