Класс MeanAbsoluteError
Класс MeanAbsoluteError вычисляет среднюю абсолютную ошибку (MAE) между истинными и предсказанными значениями. Метрика вычисляется как среднее значение абсолютных разностей между элементами тензоров. Класс наследуется от tf.keras.metrics.Metric и может использоваться как функция потерь или как метрика. Первым параметром передается имя метрики, вторым - функция приведения типов данных.
Синтаксис
tf.keras.metrics.MeanAbsoluteError(name='mean_absolute_error', dtype=None)
Пример
Давайте вычислим среднюю абсолютную ошибку между истинными и предсказанными значениями:
import tensorflow as tf
mae = tf.keras.metrics.MeanAbsoluteError()
y_true = tf.constant([1, 2, 3, 4, 5])
y_pred = tf.constant([1.5, 2.5, 3.5, 4.5, 5.5])
mae.update_state(y_true, y_pred)
res = mae.result()
print(res)
Результат выполнения кода:
tf.Tensor(0.5, shape=(), dtype=float32)
Пример
Давайте вычислим среднюю абсолютную ошибку для нескольких пакетов данных:
import tensorflow as tf
mae = tf.keras.metrics.MeanAbsoluteError()
y_true1 = tf.constant([1, 2, 3, 4, 5])
y_pred1 = tf.constant([2, 3, 4, 5, 6])
mae.update_state(y_true1, y_pred1)
y_true2 = tf.constant([10, 20, 30])
y_pred2 = tf.constant([12, 22, 32])
mae.update_state(y_true2, y_pred2)
res = mae.result()
print(res)
Результат выполнения кода:
tf.Tensor(2.0, shape=(), dtype=float32)
Пример
Давайте используем метрику при обучении модели:
import tensorflow as tf
tf.random.set_seed(0)
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mse', metrics=[tf.keras.metrics.MeanAbsoluteError()])
x = tf.constant([[1.0], [2.0], [3.0], [4.0], [5.0]])
y = tf.constant([[2.0], [4.0], [6.0], [8.0], [10.0]])
history = model.fit(x, y, epochs=3, verbose=0)
print(history.history['mean_absolute_error'])
Результат выполнения кода:
[3.9712343215942383, 3.823456287384033, 3.678901195526123]
Смотрите также
-
класс
MeanSquaredError,
который вычисляет среднюю квадратичную ошибку -
класс
MeanAbsolutePercentageError,
который вычисляет среднюю абсолютную процентную ошибку -
класс
Huber,
который вычисляет ошибку Хьюбера -
класс
LogCosh,
который вычисляет логарифм гиперболического косинуса ошибки