# AUC及TensorFlow AUC计算相关

2019/06/18 10:07

tf.metrics.auc(
labels,
predictions,
weights=None,
num_thresholds=200,
metrics_collections=None,
curve='ROC',
name=None,
summation_method='trapezoidal'
)
Args:

labels: A Tensor whose shape matches predictions. Will be cast to bool.
predictions: A floating point Tensor of arbitrary shape and whose values are in the range [0, 1].
weights: Optional Tensor whose 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 labels dimension).
num_thresholds: The number of thresholds to use when discretizing the roc curve.
metrics_collections: An optional list of collections that auc should be added to.
updates_collections: An optional list of collections that update_op should 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.
Returns:

auc: A scalar Tensor representing the current area-under-curve.
update_op: An operation that increments the true_positives, true_negatives, false_positives and false_negatives variables appropriately and whose value matches auc.

FailedPreconditionError (see above for traceback): Attempting to use uninitialized value auc/true_negatives

sess.run(tf.local_variables_initializer()) 或 sess.run(tf.initialize_local_variables())

 prediction_tensor = tf.convert_to_tensor(prediction_list)
label_tensor = tf.convert_to_tensor(label_list)
auc_value, auc_op = tf.metrics.auc(label_tensor, prediction_tensor, num_thresholds=2000)
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
sess.run(auc_op)
value = sess.run(auc_value)

print(prediction_tensor)
print(label_tensor)
print("AUC:" + str(value))

Tensor("Const:0", shape=(1544,), dtype=float32)
Tensor("Const_1:0", shape=(1544,), dtype=bool)
AUC:0.97267157

0
0 收藏

0 评论
0 收藏
0