校准曲线#
- sklearn.calibration.calibration_curve(y_true, y_prob, *, pos_label=None, n_bins=5, strategy='uniform')[source]#
- 计算校准曲线的真实概率和预测概率。 - 该方法假设输入来自二元分类器,并将[0, 1]区间离散化为若干区间。 - 校准曲线也称为可靠性图。 - 更多信息请阅读 用户指南。 - 参数:
- y_truearray-like of shape (n_samples,)
- 真实目标。 
- y_probarray-like of shape (n_samples,)
- 正类的概率。 
- pos_labelint, float, bool or str, default=None
- 正类的标签。 - 版本1.1中新增。 
- n_binsint, default=5
- 将[0, 1]区间离散化的区间数。较大的数字需要更多数据。没有样本的区间(即在 - y_prob中没有对应值)将不会返回,因此返回的数组可能少于- n_bins个值。
- strategy{‘uniform’, ‘quantile’}, default=’uniform’
- 用于定义区间宽度的策略。 - uniform
- 区间宽度相同。 
- quantile
- 区间具有相同的样本数,并取决于 - y_prob。
 
 
- 返回值:
- prob_true形状为 (n_bins,) 或更小的ndarray
- 每个区间中样本属于正类的比例(正类比例)。 
- prob_pred形状为 (n_bins,) 或更小的ndarray
- 每个区间的平均预测概率。 
 
 - 参考文献 - Alexandru Niculescu-Mizil 和 Rich Caruana (2005) Predicting Good Probabilities With Supervised Learning,见第 22 届国际机器学习会议 (ICML) 论文集。参见第 4 节(预测的定性分析)。 - 示例 - >>> 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 ]) 
