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 ])