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