tf.metrics.auc( labels, predictions, weights=None, num_thresholds=200, metrics_collections=None, updates_collections=None, curve='ROC', name=None, summation_method='trapezoidal' )
Computes the approximate AUC via a Riemann sum.
auc function creates four local variables,
false_negatives that are used to compute the AUC. To discretize the AUC curve, a linearly spaced set of thresholds is used to compute pairs of recall and precision values. The area under the ROC-curve is therefore computed using the height of the recall values by the false positive rate, while the area under the PR-curve is the computed using the height of the precision values by the recall.
This value is ultimately returned as
auc, an idempotent operation that computes the area under a discretized curve of precision versus recall values (computed using the aforementioned variables). The
num_thresholds variable controls the degree of discretization with larger numbers of thresholds more closely approximating the true AUC. The quality of the approximation may vary dramatically depending on
For best results,
predictions should be distributed approximately uniformly in the range [0, 1] and not peaked around 0 or 1. The quality of the AUC approximation may be poor if this is not the case. Setting
summation_method to 'minoring' or 'majoring' can help quantify the error in the approximation by providing lower or upper bound estimate of the AUC.
For estimation of the metric over a stream of data, the function creates an
update_op operation that updates these variables and returns the
None, weights default to 1. Use weights of 0 to mask values.
Tensorwhose shape matches
predictions. Will be cast to
predictions: A floating point
Tensorof arbitrary shape and whose values are in the range
Tensorwhose rank is either 0, or the same rank as
labels, and must be broadcastable to
labels(i.e., all dimensions must be either
1, or the same as the corresponding
num_thresholds: The number of thresholds to use when discretizing the roc curve.
metrics_collections: An optional list of collections that
aucshould be added to.
updates_collections: An optional list of collections that
update_opshould be added to.
curve: Specifies the name of the curve to be computed, 'ROC' [default] or 'PR' for the Precision-Recall-curve.
name: An optional variable_scope name.
summation_method: Specifies the Riemann summation method used (https://en.wikipedia.org/wiki/Riemann_sum): 'trapezoidal' [default] that applies the trapezoidal rule; 'careful_interpolation', a variant of it differing only by a more correct interpolation scheme for PR-AUC - interpolating (true/false) positives but not the ratio that is precision; 'minoring' that applies left summation for increasing intervals and right summation for decreasing intervals; 'majoring' that does the opposite. Note that 'careful_interpolation' is strictly preferred to 'trapezoidal' (to be deprecated soon) as it applies the same method for ROC, and a better one (see Davis & Goadrich 2006 for details) for the PR curve.
auc: A scalar
Tensorrepresenting the current area-under-curve.
update_op: An operation that increments the
false_negativesvariables appropriately and whose value matches
labelshave mismatched shapes, or if
Noneand its shape doesn't match
predictions, or if either
updates_collectionsare not a list or tuple.
RuntimeError: If eager execution is enabled.
© 2018 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.