MeanSquaredError
classkeras.metrics.MeanSquaredError(name="mean_squared_error", dtype=None)
计算 y_true
和 y_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
RootMeanSquaredError
classkeras.metrics.RootMeanSquaredError(name="root_mean_squared_error", dtype=None)
计算 y_true
和 y_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()])
MeanAbsoluteError
classkeras.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()])
MeanAbsolutePercentageError
classkeras.metrics.MeanAbsolutePercentageError(
name="mean_absolute_percentage_error", dtype=None
)
计算 y_true
和 y_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()])
MeanSquaredLogarithmicError
classkeras.metrics.MeanSquaredLogarithmicError(
name="mean_squared_logarithmic_error", dtype=None
)
计算 y_true
和 y_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()])
CosineSimilarity
classkeras.metrics.CosineSimilarity(name="cosine_similarity", dtype=None, axis=-1)
计算标签和预测之间的余弦相似度.
公式:
loss = sum(l2_norm(y_true) * l2_norm(y_pred))
参见:余弦相似度.
该指标保持预测
和标签
在数据流中的平均余弦相似度.
参数:
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)])
LogCoshError
classkeras.metrics.LogCoshError(name="logcosh", dtype=None)
计算预测误差的 hyperbolic cosine 的对数.
公式:
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()])
R2Score
classkeras.metrics.R2Score(
class_aggregation="uniform_average", num_regressors=0, name="r2_score", dtype=None
)
计算R2分数.
公式:
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
这也被称为 决定系数.
它表示拟合的回归线与真实数据的接近程度.
该指标还可以计算"调整R2”分数.
参数:
class_aggregation:指定如何聚合对应于不同输出类别(或目标维度)的分数,
即预测的最后一个轴上的不同维度.
等同于Scikit-Learn中的multioutput
参数.
应为None
(不聚合)、"uniform_average"
、
"variance_weighted_average"
之一.
num_regressors:使用的独立回归变量数量("调整R2”分数).0是标准R2分数.
默认为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