Класс BinaryAccuracy
Класс BinaryAccuracy вычисляет метрику точности для задач бинарной классификации. Метрика сравнивает предсказанные значения с истинными метками и возвращает долю совпадений. Первым параметром передаётся порог threshold, который определяет, при каком значении вероятность считается положительным классом. Вторым параметром можно передать имя метрики name, а третьим - тип данных dtype.
Синтаксис
tf.keras.metrics.BinaryAccuracy(threshold=0.5, name='binary_accuracy', dtype=None)
Пример
Давайте создадим метрику BinaryAccuracy и вычислим точность для простого набора предсказаний:
import tensorflow as tf
m = tf.keras.metrics.BinaryAccuracy()
m.update_state([1, 0, 1, 1], [0.9, 0.2, 0.8, 0.3])
print(m.result().numpy())
Результат выполнения кода:
0.75
Пример
Давайте изменим порог на 0.7 и посмотрим, как изменится результат:
import tensorflow as tf
m = tf.keras.metrics.BinaryAccuracy(threshold=0.7)
m.update_state([1, 0, 1, 1], [0.9, 0.2, 0.8, 0.3])
print(m.result().numpy())
Результат выполнения кода:
0.75
Пример
Давайте вычислим точность в составе модели с помощью метода compile:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, activation='sigmoid', input_shape=(3,))
])
model.compile(optimizer='sgd', loss='binary_crossentropy', metrics=[tf.keras.metrics.BinaryAccuracy()])
x = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0], [1.0, 1.0, 1.0]])
y = tf.constant([1.0, 0.0, 1.0, 0.0])
model.fit(x, y, epochs=1, verbose=0)
res = model.evaluate(x, y, verbose=0)
print(res)
Результат выполнения кода:
[0.6931471824645996, 0.5]
Пример
Давайте сбросим состояние метрики с помощью метода reset_state и вычислим точность заново:
Результат выполнения кода:
0.75
0.5
Смотрите также
-
класс
Accuracy,
который вычисляет общую точность предсказаний -
класс
BinaryCrossentropy,
который вычисляет бинарную кросс-энтропию -
класс
Precision,
который вычисляет точность положительных предсказаний -
класс
Recall,
который вычисляет полноту предсказаний