Keras 3 API 文件 / 指標 / 迴歸指標

迴歸指標

[原始碼]

均方誤差 類別

keras.metrics.MeanSquaredError(name="mean_squared_error", dtype=None)

計算 y_truey_pred 之間的均方誤差。

公式

loss = mean(square(y_true - y_pred))

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.MeanSquaredError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
0.25

[原始碼]

均方根誤差 類別

keras.metrics.RootMeanSquaredError(name="root_mean_squared_error", dtype=None)

計算 y_truey_pred 之間的均方根誤差指標。

公式

loss = sqrt(mean((y_pred - y_true) ** 2))

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.RootMeanSquaredError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
0.5
>>> m.reset_state()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]],
...                sample_weight=[1, 0])
>>> m.result()
0.70710677

compile() API 一起使用

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.RootMeanSquaredError()])

[原始碼]

平均絕對誤差 類別

keras.metrics.MeanAbsoluteError(name="mean_absolute_error", dtype=None)

計算標籤和預測之間的平均絕對誤差。

公式

loss = mean(abs(y_true - y_pred))

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.MeanAbsoluteError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
0.25
>>> m.reset_state()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]],
...                sample_weight=[1, 0])
>>> m.result()
0.5

compile() API 一起使用

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.MeanAbsoluteError()])

[原始碼]

平均絕對百分比誤差 類別

keras.metrics.MeanAbsolutePercentageError(
    name="mean_absolute_percentage_error", dtype=None
)

計算 y_truey_pred 之間的平均絕對百分比誤差。

公式

loss = 100 * mean(abs((y_true - y_pred) / y_true))

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.MeanAbsolutePercentageError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
250000000.0
>>> m.reset_state()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]],
...                sample_weight=[1, 0])
>>> m.result()
500000000.0

compile() API 一起使用

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.MeanAbsolutePercentageError()])

[原始碼]

均方對數誤差 類別

keras.metrics.MeanSquaredLogarithmicError(
    name="mean_squared_logarithmic_error", dtype=None
)

計算 y_truey_pred 之間的均方對數誤差。

公式

loss = mean(square(log(y_true + 1) - log(y_pred + 1)))

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.MeanSquaredLogarithmicError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
0.12011322
>>> m.reset_state()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]],
...                sample_weight=[1, 0])
>>> m.result()
0.24022643

compile() API 一起使用

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.MeanSquaredLogarithmicError()])

[原始碼]

餘弦相似度 類別

keras.metrics.CosineSimilarity(name="cosine_similarity", dtype=None, axis=-1)

計算標籤和預測之間的餘弦相似度。

公式

loss = sum(l2_norm(y_true) * l2_norm(y_pred))

參見:餘弦相似度。此指標保持 predictionslabels 在數據流上的平均餘弦相似度。

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。
  • axis: (可選) 默認為 -1。計算餘弦相似度的維度。

範例

>>> # l2_norm(y_true) = [[0., 1.], [1./1.414, 1./1.414]]
>>> # l2_norm(y_pred) = [[1., 0.], [1./1.414, 1./1.414]]
>>> # l2_norm(y_true) . l2_norm(y_pred) = [[0., 0.], [0.5, 0.5]]
>>> # result = mean(sum(l2_norm(y_true) . l2_norm(y_pred), axis=1))
>>> #        = ((0. + 0.) +  (0.5 + 0.5)) / 2
>>> m = keras.metrics.CosineSimilarity(axis=1)
>>> m.update_state([[0., 1.], [1., 1.]], [[1., 0.], [1., 1.]])
>>> m.result()
0.49999997
>>> m.reset_state()
>>> m.update_state([[0., 1.], [1., 1.]], [[1., 0.], [1., 1.]],
...                sample_weight=[0.3, 0.7])
>>> m.result()
0.6999999

compile() API 一起使用

model.compile(
    optimizer='sgd',
    loss='mse',
    metrics=[keras.metrics.CosineSimilarity(axis=1)])

[原始碼]

對數雙曲餘弦誤差 類別

keras.metrics.LogCoshError(name="logcosh", dtype=None)

計算預測誤差的雙曲餘弦的對數。

公式

error = y_pred - y_true
logcosh = mean(log((exp(error) + exp(-error))/2), axis=-1)

參數

  • name: (可選) 指標實例的字串名稱。
  • dtype: (可選) 指標結果的數據類型。

範例

>>> m = keras.metrics.LogCoshError()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]])
>>> m.result()
0.10844523
>>> m.reset_state()
>>> m.update_state([[0, 1], [0, 0]], [[1, 1], [0, 0]],
...                sample_weight=[1, 0])
>>> m.result()
0.21689045

compile() API 一起使用

model.compile(optimizer='sgd',
              loss='mse',
              metrics=[keras.metrics.LogCoshError()])

[原始碼]

R 平方分數 類別

keras.metrics.R2Score(
    class_aggregation="uniform_average", num_regressors=0, name="r2_score", dtype=None
)

計算 R 平方分數。

公式

sum_squares_residuals = sum((y_true - y_pred) ** 2)
sum_squares = sum((y_true - mean(y_true)) ** 2)
R2 = 1 - sum_squares_residuals / sum_squares

這也稱為決定係數

它表示擬合迴歸線與真實數據的接近程度。

  • 可能的最高分數為 1.0。它表示預測變量完美地解釋了目標中的變異。
  • 分數 0.0 表示預測變量未解釋目標中的變異。
  • 如果模型比隨機更差,它也可能是負數。

此指標還可以計算“調整後的 R 平方”分數。

參數

  • class_aggregation: 指定如何聚合對應於不同輸出類別(或目標維度)的分數,即預測最後一個軸上的不同維度。等效於 Scikit-Learn 中的 multioutput 參數。應為 None(無聚合)、"uniform_average""variance_weighted_average" 之一。
  • num_regressors: 使用的獨立迴歸變量數量(“調整後的 R 平方”分數)。0 是標準 R 平方分數。默認為 0
  • name: 可選。指標實例的字串名稱。
  • dtype: 可選。指標結果的數據類型。

範例

>>> y_true = np.array([[1], [4], [3]], dtype=np.float32)
>>> y_pred = np.array([[2], [4], [4]], dtype=np.float32)
>>> metric = keras.metrics.R2Score()
>>> metric.update_state(y_true, y_pred)
>>> result = metric.result()
>>> result
0.57142854