tf.compat.v1.metrics.auc
Вычисляет приближённую площадь под кривой (AUC) с помощью суммы Римана. (устарела)
tf.compat.v1.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 может быть неточным. Значения 'minoring' или 'majoring' для summation_method помогают оценить погрешность приближения, задавая нижнюю или верхнюю границу 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 | Необязательное имя variable_scope. |
summation_method | Задаёт метод суммирования Римана (https://en.wikipedia.org/wiki/Riemann_sum): 'trapezoidal' [по умолчанию] — применение метода трапеций; 'careful_interpolation' — его вариант, отличающийся более точной схемой интерполяции для PR-AUC: интерполируются положительные и отрицательные результаты, но не их отношение, то есть точность; 'minoring' — применение суммирования слева для возрастающих интервалов и справа для убывающих; 'majoring' — обратный порядок. Обратите внимание: 'careful_interpolation' безусловно предпочтительнее 'trapezoidal' (который вскоре будет объявлен устаревшим), поскольку использует тот же метод для ROC и более точный метод для PR-кривой (подробности см. в Davis & Goadrich, 2006). |
thresholds | Необязательный список значений с плавающей точкой, используемых в качестве пороговых значений для дискретизации кривой. Если задан, параметр num_thresholds игнорируется. Значения должны находиться в диапазоне [0, 1]. Для корректной обработки предсказаний, в точности равных 0 или 1, к списку автоматически добавляются конечные пороговые значения {-epsilon, 1+epsilon}, где epsilon — небольшое положительное число. |
| Возвращает | |
|---|---|
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 execution. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/metrics/auc