Spec-Zone.ru › TensorFlow 1.15

tf.contrib.metrics.f1_score

Вычисляет приблизительно наилучший показатель F1 по различным порогам.

tf.contrib.metrics.f1_score(
    labels, predictions, weights=None, num_thresholds=200, metrics_collections=None,
    updates_collections=None, name=None
)

Функция f1_score применяет ряд пороговых значений к прогнозам, чтобы преобразовать их из [0, 1] в булевы значения. Точность и полнота вычисляются путем сравнения их с метками. Затем показатель F1 определяется как 2 * точность * полнота / (точность + полнота). Возвращается наилучшее значение по порогам.

Примечание: на практике может быть желательно выбрать лучший порог на наборе данных для проверки и оценить показатель F1 с этим порогом на отдельном тестовом наборе. Или может быть желательно использовать фиксированный порог (например, 0,5).

Эта функция внутренне создает четыре локальные переменные, true_positives, true_negatives, false_positives и false_negatives, которые используются для вычисления пар значений полноты и точности для линейно распределённого набора порогов, из которых выводится наилучший показатель F1.

Это значение в конечном итоге возвращается как f1-score, идемпотентная операция, которая вычисляет показатель F1 (вычисляемый с использованием вышеупомянутых переменных). Переменная num_thresholds контролирует степень дискретизации, при большем количестве порогов приближение к истинному наилучшему значению F1 становится точнее.

Для оценки метрики по потоку данных функция создаёт операцию update_op, которая обновляет эти переменные и возвращает показатель F1.

Пример использования с пользовательским оценщиком: def model_fn(features, labels, mode): predictions = make_predictions(features) loss = make_loss(predictions, labels) train_op = tf.contrib.training.create_train_op( total_loss=loss, optimizer='Adam') eval_metric_ops = {'f1': f1_score(labels, predictions)} return tf.estimator.EstimatorSpec( mode=mode, predictions=predictions, loss=loss, train_op=train_op, eval_metric_ops=eval_metric_ops, export_outputs=export_outputs) estimator = tf.estimator.Estimator(model_fn=model_fn)

Если weights равно None, веса по умолчанию равны 1. Используйте веса 0 для маскирования значений.

Args
labels A Tensor с формой, соответствующей predictions. Будет приведено к типу bool.
predictions A floating point Tensor произвольной формы, значения которого находятся в диапазоне [0, 1].
weights Необязательные Tensor с рангом 0 или таким же, как у labels, и должны быть совместимы с labels (т.е., все измерения должны быть либо 1, или такими же, как соответствующее измерение labels).
num_thresholds Количество порогов, используемых при дискретизации кривой ROC.
metrics_collections Необязательный список коллекций, к которым f1_score должны быть добавлены.
updates_collections Необязательный список коллекций, к которым update_op должны быть добавлены.
name Необязательное имя области переменных.
Returns
f1_score Скалярное Tensor, представляющее текущее наилучшее значение F1 по различным порогам.
update_op Операция, которая увеличивает переменные true_positives, true_negatives, false_positives и false_negatives соответствующим образом и значение которой совпадает со значением f1_score.
Raises
ValueError Если predictions и labels имеют несовпадающие формы, или если weights не является None и его форма не совпадает с predictions, или если metrics_collections или updates_collections не являются списком или кортежем.

© 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/contrib/metrics/f1_score

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API