tf.metrics.auc
Вычисляет приблизительную площадь под кривой (AUC) с помощью сумм Римана.
tf.metrics.auc(
labels, predictions, weights=None, num_thresholds=200, metrics_collections=None,
updates_collections=None, curve='ROC', name=None,
summation_method='trapezoidal', thresholds=None
)
Функция auc создает четыре локальные переменные, true_positives, true_negatives, false_positives и false_negatives, используемые для вычисления AUC. Для дискретизации кривой AUC используется линейно распределенный набор пороговых значений для вычисления пар значений отзыва и точности. Таким образом, площадь под кривой ROC вычисляется с использованием высоты значений отзыва по отношению к доле ложноположительных результатов, а площадь под кривой PR — с использованием высоты значений точности по отношению к отзывчивости.
Это значение в конечном итоге возвращается как auc, идемпотентная операция, которая вычисляет площадь под дискретизированной кривой точности по отношению к отзывчивости (вычисленной с использованием упомянутых переменных). Переменная num_thresholds контролирует степень дискретизации, при больших значениях пороговых значений приближение к истинному значению AUC становится более точным. Качество приближения может сильно варьироваться в зависимости от num_thresholds.
Для достижения наилучших результатов, predictions должны быть распределены примерно равномерно в диапазоне [0, 1] и не должны иметь пиков вблизи 0 или 1. Качество приближения AUC может быть низким, если это не так. Установка summation_method в 'minoring' или 'majoring' может помочь количественно оценить ошибку в приближении, предоставив нижнюю или верхнюю границу оценки AUC. Параметр thresholds может использоваться для ручного указания пороговых значений, которые более равномерно разбивают прогнозы.
Для оценки метрики по потоку данных функция создает операцию update_op, которая обновляет эти переменные и возвращает auc.
Если weights является None, веса по умолчанию равны 1. Используйте веса 0, чтобы замаскировать значения.
| Аргументы | |
|---|---|
labels | Tensor, форма которого соответствует predictions. Будет приведено к типу bool. |
predictions | Числовое значение с плавающей точкой Tensor произвольной формы, значения которого находятся в диапазоне [0, 1]. |
weights | Необязательные Tensor, ранг которых равен либо 0, либо рангу labels, и которые должны быть совместимы с labels (т. е., все измерения должны быть либо 1, либо такими же, как соответствующее измерение labels). |
num_thresholds | Количество пороговых значений, используемых при дискретизации кривой ROC. |
metrics_collections | Необязательный список коллекций, к которым auc следует добавить. |
updates_collections | Необязательный список коллекций, к которым update_op следует добавить. |
curve | Указывает имя кривой, которая должна быть вычислена, 'ROC' [по умолчанию] или 'PR' для кривой точность-полнота. |
name | Необязательное имя области переменных. |
summation_method | Указывает метод суммирования Римана, используемый (https://en.wikipedia.org/wiki/Riemann_sum): 'трапециевидный' [по умолчанию], применяющий правило трапеций; 'careful_interpolation', его вариант, отличающийся только более корректной схемой интерполяции для PR-AUC — интерполяция (положительных/отрицательных) прогнозов, но не отношение, которое является точностью; 'minoring', применяющий левую сумму для возрастающих интервалов и правую сумму для убывающих интервалов; 'majoring', который делает обратное. Обратите внимание, что 'careful_interpolation' строго предпочтительнее 'trapezoidal' (скоро будет устаревшим), так как он применяет тот же метод для ROC и лучший (см. Davis & Goadrich 2006 для деталей) для кривой PR. |
thresholds | Необязательный список числовых значений с плавающей точкой, используемых в качестве пороговых значений для дискретизации кривой. Если задано, параметр num_thresholds игнорируется. Значения должны находиться в диапазоне [0, 1]. Пороговые значения конечных точек, равные {-epsilon, 1+epsilon}, для малого положительного значения epsilon, будут автоматически включены, чтобы правильно обрабатывать прогнозы, равные точно 0 или 1. |
| Возвращаемое значение | |
|---|---|
auc | Скалярное значение Tensor, представляющее текущую площадь под кривой. |
update_op | Операция, которая увеличивает переменные true_positives, true_negatives, false_positives и false_negatives должным образом и значение которой соответствует auc. |
| Исключения | |
|---|---|
ValueError | Если predictions и labels имеют несовместимые формы, или если weights не None и его форма не соответствует predictions, или если metrics_collections или updates_collections не являются списком или кортежем. |
RuntimeError | Если включено выполнение eager. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/metrics/auc