Класс AUC
Класс AUC вычисляет площадь под ROC-кривой
(Area Under the Curve) - метрику качества
классификационной модели. Метрика показывает
вероятность того, что случайно выбранный
положительный пример получит более высокую
оценку, чем случайно выбранный отрицательный.
Первым параметром передаётся количество классов
num_classes, вторым - имя метрики
name, третьим - тип усреднения
multi_label. Класс поддерживает бинарную
и многоклассовую классификацию.
Синтаксис
tf.keras.metrics.AUC(
num_thresholds=200,
curve="ROC",
summation_method="interpolation",
multi_label=False,
num_labels=None,
label_weights=None,
from_logits=False,
[ name="auc" ]
)
Пример
Давайте создадим метрику AUC для бинарной
классификации и вычислим её значение на простых
предсказаниях:
import tensorflow as tf
auc = tf.keras.metrics.AUC()
auc.update_state([0, 0, 1, 1], [0.1, 0.4, 0.35, 0.8])
print(auc.result().numpy())
Результат выполнения кода:
0.75
Пример
Давайте вычислим метрику AUC для
многоклассовой задачи с тремя классами:
import tensorflow as tf
auc = tf.keras.metrics.AUC(num_classes=3)
y_true = [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
]
y_pred = [
[0.9, 0.05, 0.05],
[0.1, 0.8, 0.1],
[0.2, 0.2, 0.6]
]
auc.update_state(y_true, y_pred)
print(auc.result().numpy())
Результат выполнения кода:
1.0
Пример
Давайте обнулим состояние метрики методом
reset_state и вычислим AUC заново:
Результат выполнения кода:
1.0
0.5