calibration_curve#

sklearn.calibration.calibration_curve(y_true, y_prob, *, pos_label=None, n_bins=5, strategy='uniform')#

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

该方法假设输入来自一个二分类器,并将 [0, 1] 区间离散化为若干个箱子。

校准曲线也被称为可靠性图。

更多信息请参阅 用户指南

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

真实目标。

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

正类的概率。

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

正类的标签。

Added in version 1.1.

n_binsint, 默认=5

将 [0, 1] 区间离散化的箱子数量。更多的箱子需要更多的数据。没有样本的箱子(即在 y_prob 中没有对应的值)将不会被返回,因此返回的数组可能少于 n_bins 个值。

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

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

uniform

箱子具有相同的宽度。

quantile

箱子具有相同数量的样本,并依赖于 y_prob

Returns:
prob_true形状为 (n_bins,) 或更小的 ndarray

每个箱子中正类样本的比例(正类的比例)。

prob_pred形状为 (n_bins,) 或更小的 ndarray

每个箱子中的平均预测概率。

References

Alexandru Niculescu-Mizil 和 Rich Caruana (2005) 使用监督学习预测良好概率,在第22届国际机器学习会议 (ICML) 的论文集中。 参见第4节(预测的定性分析)。

Examples

>>> import numpy as np
>>> from sklearn.calibration import calibration_curve
>>> y_true = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1])
>>> y_pred = np.array([0.1, 0.2, 0.3, 0.4, 0.65, 0.7, 0.8, 0.9,  1.])
>>> prob_true, prob_pred = calibration_curve(y_true, y_pred, n_bins=3)
>>> prob_true
array([0. , 0.5, 1. ])
>>> prob_pred
array([0.2  , 0.525, 0.85 ])