precision_recall_curve#

sklearn.metrics.precision_recall_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=False)[источник]#

Вычислите пары точность-полнота для различных порогов вероятности.

Примечание: Поддержка за пределами бинарный задачи классификации через one-vs-rest или one-vs-one не реализованы.

Точность — это отношение tp / (tp + fp) где tp это количество истинно положительных и fp количество ложных срабатываний. Точность интуитивно представляет способность классификатора не помечать как положительный образец, который является отрицательным.

Полнота (recall) — это отношение tp / (tp + fn) где tp это количество истинно положительных и fn количество ложноотрицательных результатов. Полнота (recall) интуитивно представляет собой способность классификатора найти все положительные образцы.

Последние значения точности и полноты равны 1. и 0. соответственно и не имеют соответствующего порога. Это гарантирует, что график начинается на оси y.

Первые значения точности и полноты: точность=баланс классов и полнота=1.0, что соответствует классификатору, который всегда предсказывает положительный класс.

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

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

Истинные бинарные метки. Если метки не являются ни {-1, 1}, ни {0, 1}, то pos_label должен быть явно указан.

y_scorearray-like формы (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_weightarray-like формы (n_samples,), по умолчанию=None

Веса выборок.

drop_intermediatebool, по умолчанию=False

Удалять ли некоторые субоптимальные пороги, которые не появятся на графике кривой точности-полноты. Это полезно для создания более легких кривых точности-полноты.

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

Возвращает:
точностьndarray формы (n_thresholds + 1,)

Значения точности, такие что элемент i является точностью предсказаний с оценкой >= thresholds[i], а последний элемент равен 1.

полнотаndarray формы (n_thresholds + 1,)

Убывающие значения полноты, такие что элемент i — это полнота предсказаний с оценкой >= thresholds[i], а последний элемент равен 0.

порогиndarray формы (n_thresholds,)

Увеличение порогов для функции принятия решений, используемой для вычисления точности и полноты, где n_thresholds = len(np.unique(y_score)).

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

PrecisionRecallDisplay.from_estimator

Построение кривой точности-полноты для бинарного классификатора.

PrecisionRecallDisplay.from_predictions

Построение кривой Precision-Recall с использованием предсказаний бинарного классификатора.

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