precision_recall_curve
- sklearn.metrics.precision_recall_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=False)[исходный код]
-
Вычисляет пары «точность — полнота» для разных порогов вероятности.
Примечание. Поддержка задач классификации, отличных от бинарной классификации, с использованием подхода «один против всех» или «один против одного» не реализована.
Точность — это отношение
tp / (tp + fp), гдеtp— число истинно положительных результатов, аfp— число ложноположительных результатов. Интуитивно точность характеризует способность классификатора не помечать отрицательные образцы как положительные.Полнота — это отношение
tp / (tp + fn), гдеtp— число истинно положительных результатов, аfn— число ложноотрицательных результатов. Интуитивно полнота характеризует способность классификатора находить все положительные образцы.Последние значения точности и полноты равны соответственно 1 и 0 и не имеют соответствующего порога. Это гарантирует, что график начинается на оси y.
Первые значения точности и полноты равны соответственно precision=class balance и recall=1.0 и соответствуют классификатору, который всегда предсказывает положительный класс.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- y_trueмассивоподобный объект формы (n_samples,)
-
Истинные бинарные метки. Если метки не принадлежат множеству {-1, 1} или {0, 1}, необходимо явно задать pos_label.
- y_scoreмассивоподобный объект формы (n_samples,)
-
Оценки целевого класса: это могут быть оценки вероятности положительного класса или мера принятия решений без применения порога (возвращаемая
decision_functionнекоторыми классификаторами). Для оценок decision_function значения, большие или равные нулю, должны обозначать положительный класс. - pos_labelint, float, bool или str, по умолчанию=None
-
Метка положительного класса. Если
pos_label=Noneи y_true принимает значения {-1, 1} или {0, 1},pos_labelустанавливается равным 1; в противном случае возникает ошибка. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов.
- drop_intermediatebool, по умолчанию=False
-
Следует ли отбрасывать некоторые неоптимальные пороги, которые не отображались бы на графике «точность — полнота». Это позволяет строить более компактные графики «точность — полнота».
Добавлено в версии 1.3.
- Возвращает:
-
- precisionndarray формы (n_thresholds + 1,)
-
Значения точности: элемент i — это точность предсказаний с оценкой >= thresholds[i], а последний элемент равен 1.
- recallndarray формы (n_thresholds + 1,)
-
Убывающие значения полноты: элемент i — это полнота предсказаний с оценкой >= thresholds[i], а последний элемент равен 0.
- thresholdsndarray формы (n_thresholds,)
-
Возрастающие пороги для функции принятия решений, используемые для вычисления точности и полноты, где
n_thresholds = len(np.unique(y_score)).
См. также
PrecisionRecallDisplay.from_estimator-
Строит график «точность — полнота» для бинарного классификатора.
PrecisionRecallDisplay.from_predictions-
Строит график «точность — полнота» на основе предсказаний бинарного классификатора.
average_precision_score-
Вычисляет среднюю точность по оценкам предсказаний.
det_curve-
Вычисляет частоты ошибок для разных порогов вероятности.
roc_curve-
Вычисляет ROC-кривую (рабочую характеристику приемника).
confusion_matrix_at_thresholds-
Для бинарной классификации вычисляет количество истинно отрицательных, ложноположительных, ложноотрицательных и истинно положительных результатов для каждого порога.
Примеры
>>> import numpy as np >>> from sklearn.metrics import precision_recall_curve >>> y_true = np.array([0, 0, 1, 1]) >>> y_scores = np.array([0.1, 0.4, 0.35, 0.8]) >>> precision, recall, thresholds = precision_recall_curve( ... y_true, y_scores) >>> precision array([0.5 , 0.66666667, 0.5 , 1. , 1. ]) >>> recall array([1. , 1. , 0.5, 0.5, 0. ]) >>> thresholds array([0.1 , 0.35, 0.4 , 0.8 ])
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.metrics.precision_recall_curve.html