校准曲线显示#
- class sklearn.calibration.CalibrationDisplay(prob_true, prob_pred, y_prob, *, estimator_name=None, pos_label=None)[source]#
校准曲线(也称为可靠性图)可视化。
建议使用
from_estimator
或from_predictions
创建CalibrationDisplay
。所有参数都存储为属性。在 用户指南 中阅读有关校准的更多信息,在 可视化 中阅读有关 scikit-learn 可视化 API 的更多信息。
有关如何使用可视化的示例,请参见 概率校准曲线。
版本 1.0 中添加。
- 参数:
- prob_true形状为 (n_bins,) 的ndarray
每个区间中,其类别为正类别的样本比例(正样本比例)。
- prob_pred形状为 (n_bins,) 的ndarray
每个区间中的平均预测概率。
- y_prob形状为 (n_samples,) 的ndarray
每个样本的正类别的概率估计。
- estimator_namestr,默认为 None
估计器的名称。如果为 None,则不显示估计器名称。
- pos_labelint、float、bool 或 str,默认为 None
计算校准曲线时使用的正类。默认情况下,使用
from_estimator
时,pos_label
设置为estimators.classes_[1]
;使用from_predictions
时,设置为 1。1.1 版本新增。
- 属性:
- line_matplotlib Artist
校准曲线。
- ax_matplotlib Axes
包含校准曲线的坐标轴。
- figure_matplotlib Figure
包含曲线的图形。
另请参阅
calibration_curve
计算校准曲线的真实概率和预测概率。
CalibrationDisplay.from_predictions
使用真实标签和预测标签绘制校准曲线。
CalibrationDisplay.from_estimator
使用估计器和数据绘制校准曲线。
示例
>>> 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)[source]#
使用二元分类器和数据绘制校准曲线。
校准曲线,也称为可靠性图,使用来自二元分类器的输入,并绘制每个区间的平均预测概率与正类的比例(y 轴)。
额外的关键字参数将传递给
matplotlib.pyplot.plot
。在 用户指南 中阅读有关校准的更多信息,在 可视化 中阅读有关 scikit-learn 可视化 API 的更多信息。
版本 1.0 中添加。
- 参数:
- estimator估计器实例
已拟合的分类器或已拟合的
Pipeline
(其中最后一个估计器是分类器)。分类器必须具有 predict_proba 方法。- X形状为 (n_samples, n_features) 的 {数组型、稀疏矩阵}
输入值。
- y形状为 (n_samples,) 的数组型
二元目标值。
- n_binsint,默认为 5
计算校准曲线时将 [0, 1] 区间离散化为的箱数。较大的数字需要更多数据。
- strategy{'uniform', 'quantile'},默认为 'uniform'
用于定义箱宽的策略。
'uniform'
:箱宽相同。'quantile'
:箱具有相同数量的样本,并且取决于预测概率。
- pos_labelint、float、bool 或 str,默认为 None
计算校准曲线时的正类。默认情况下,
estimators.classes_[1]
被认为是正类。1.1 版本新增。
- namestr,默认为 None
用于标记曲线的名称。如果为
None
,则使用估计器的名称。- ref_linebool,默认为 True
如果为
True
,则绘制表示完美校准分类器的参考线。- axmatplotlib 坐标轴,默认为 None
要绘制的坐标轴对象。如果为
None
,则创建一个新的图形和坐标轴。- **kwargsdict
要传递给
matplotlib.pyplot.plot
的关键字参数。
- 返回:
- display
CalibrationDisplay
. 存储计算值的物件。
- display
另请参阅
CalibrationDisplay.from_predictions
使用真实标签和预测标签绘制校准曲线。
示例
>>> 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)[source]#
使用真实标签和预测概率绘制校准曲线。
校准曲线,也称为可靠性图,使用来自二元分类器的输入,并绘制每个区间的平均预测概率与正类的比例(y 轴)。
额外的关键字参数将传递给
matplotlib.pyplot.plot
。在 用户指南 中阅读有关校准的更多信息,在 可视化 中阅读有关 scikit-learn 可视化 API 的更多信息。
版本 1.0 中添加。
- 参数:
- 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。1.1 版本新增。
- namestr,默认为 None
用于标记曲线的名称。
- ref_linebool,默认为 True
如果为
True
,则绘制表示完美校准分类器的参考线。- axmatplotlib 坐标轴,默认为 None
要绘制的坐标轴对象。如果为
None
,则创建一个新的图形和坐标轴。- **kwargsdict
要传递给
matplotlib.pyplot.plot
的关键字参数。
- 返回:
- display
CalibrationDisplay
. 存储计算值的物件。
- display
另请参阅
CalibrationDisplay.from_estimator
使用估计器和数据绘制校准曲线。
示例
>>> 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)[source]#
绘制可视化图像。
额外的关键字参数将传递给
matplotlib.pyplot.plot
。- 参数:
- axMatplotlib Axes,默认值=None
要绘制的坐标轴对象。如果为
None
,则创建一个新的图形和坐标轴。- namestr,默认为 None
曲线标签名称。如果为
None
,则使用estimator_name
(如果非None
),否则不显示标签。- ref_linebool,默认为 True
如果为
True
,则绘制表示完美校准分类器的参考线。- **kwargsdict
要传递给
matplotlib.pyplot.plot
的关键字参数。
- 返回:
- display
CalibrationDisplay
存储计算值的物件。
- display