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