calibration_curve#

sklearn.calibration.calibration_curve(y_true, y_prob, *, pos_label=None, n_bins=5, стратегия='uniform')[источник]#

Вычислить истинные и предсказанные вероятности для калибровочной кривой.

Метод предполагает, что входные данные поступают от бинарного классификатора, и дискретизирует интервал [0, 1] на бины.

Кривые калибровки также могут называться диаграммами надежности.

Подробнее в Руководство пользователя.

Параметры:
y_truearray-like формы (n_samples,)

Истинные целевые переменные.

y_probarray-like формы (n_samples,)

Вероятности положительного класса.

pos_labelint, float, bool или str, по умолчанию=None

Метка положительного класса.

Добавлено в версии 1.1.

n_binsint, по умолчанию=5

Количество бинов для дискретизации интервала [0, 1]. Большее число требует больше данных. Бины без образцов (т.е. без соответствующих значений в y_prob) не будет возвращено, поэтому возвращаемые массивы могут содержать менее n_bins значения.

стратегия{‘uniform’, ‘quantile’}, default=’uniform’

Стратегия определения ширины бинов.

uniform

Бины имеют одинаковую ширину.

квантиль

Бины имеют одинаковое количество выборок и зависят от y_prob.

Возвращает:
prob_truendarray формы (n_bins,) или меньше

Доля выборок, чей класс является положительным классом, в каждом бине (доля положительных).

prob_predndarray формы (n_bins,) или меньше

Средняя прогнозируемая вероятность в каждом бине.

Смотрите также

CalibrationDisplay.from_predictions

Построение калибровочной кривой с использованием истинных и предсказанных меток.

CalibrationDisplay.from_estimator

Построить калибровочную кривую с использованием оценщика и данных.

Ссылки

Александру Никулеску-Мизил и Рич Каруана (2005) Predicting Good Probabilities With Supervised Learning, в Proceedings of the 22nd International Conference on Machine Learning (ICML). См. раздел 4 (Qualitative Analysis of Predictions).

Примеры

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