Класс Recall
Класс Recall вычисляет метрику полноты, которая показывает,
какую долю от всех реальных положительных объектов
модель смогла правильно определить. Метрика доступна
в модуле tf.keras.metrics. Первым параметром
передаются пороговые значения для преобразования
вероятностей в бинарные метки, вторым - имя метрики,
третьим - тип данных. Класс поддерживает вычисление
полноты как для бинарной, так и для многоклассовой
классификации.
Синтаксис
tf.keras.metrics.Recall(
thresholds=None,
top_k=None,
class_id=None,
name=None,
dtype=None
)
Пример
Давайте вычислим полноту для простого случая бинарной классификации:
import tensorflow as tf
m = tf.keras.metrics.Recall()
m.update_state([0, 1, 1, 1], [0, 1, 0, 1])
res = m.result()
print(res.numpy())
Результат выполнения кода:
0.6666667
Пример
Давайте вычислим полноту с использованием
порогового значения 0.5:
Результат выполнения кода:
0.6666667
Пример
Давайте вычислим полноту для многоклассовой классификации с тремя классами:
import tensorflow as tf
m = tf.keras.metrics.Recall()
m.update_state(
[[0, 1, 0], [1, 0, 0], [0, 0, 1]],
[[0.1, 0.8, 0.1], [0.7, 0.2, 0.1], [0.2, 0.3, 0.5]]
)
res = m.result()
print(res.numpy())
Результат выполнения кода:
0.6666667
Пример
Давайте используем метрику Recall
при обучении модели:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(
optimizer='adam',
loss='binary_crossentropy',
metrics=[tf.keras.metrics.Recall()]
)
x = tf.constant([[1.0], [2.0], [3.0], [4.0]])
y = tf.constant([[0.0], [0.0], [1.0], [1.0]])
model.fit(x, y, epochs=1, verbose=0)
res = model.evaluate(x, y, verbose=0)
print(res)
Результат выполнения кода:
[0.6931471824645996, 0.5]