首页 > 解决方案 > 有人可以说明 sklearn.mean_absolute_error 2个矩阵的基本方法吗?

问题描述

每个文档

mean_absolute_error 函数计算平均绝对误差,这是一个风险度量,对应于绝对误差损失或 L1 范数损失的预期值。

我了解 2 个“向量”的过程

>>> from sklearn.metrics import mean_absolute_error
>>> y_true = [3, -0.5, 2, 7]
>>> y_pred = [2.5, 0.0, 2, 7]
>>> mean_absolute_error(y_true, y_pred)

将每个向量中对应元素之间的所有绝对差相加,然后除以向量的长度。

此代码正是 sklearn.mean_absolute_error 对 2 个“向量”的基础处理

res = 0
for t,p in zip(y_true, y_pred):
    res = res + np.abs(t-p)
res/4

我无法理解的是矩阵的方法

>>> y_true = [[0.5, 1], [-1, 1], [7, -6]]
>>> y_pred = [[0, 2], [-1, 2], [8, -5]]
>>> mean_absolute_error(y_true, y_pred)
0.75

显然不是这个程序。

>>> res = 0
>>> for t,p in zip(y_true, y_pred):
... res = res + np.abs(t[0]-p[0]) + np.abs(t[1]-p[1])
>>> res/4
1.125

有人可以说明 sklearn.mean_absolute_error 2个矩阵的基本方法吗?

标签: pythonmachine-learningscikit-learn

解决方案


以矩阵作为输入,总损失简单地除以元素总数。在您的示例中,总损失为 4.5 (0.5 + 1 + 0 + 1 + 1 + 1),我们有六个元素(三乘以二),因此绝对误差的输出为 4.5/6 = 0.75,正如预期的那样。


推荐阅读