Python 有人能举例说明两个矩阵的sklearn.mean_绝对误差的基本方法吗?

Python 有人能举例说明两个矩阵的sklearn.mean_绝对误差的基本方法吗?,python,machine-learning,scikit-learn,Python,Machine Learning,Scikit Learn,mean_absolute_error函数计算mean absolute error,这是一种风险度量,对应于绝对误差损失或L1范数损失的预期值 我了解2个“向量”的过程 将每个向量中对应元素之间的所有绝对差值相加,然后除以向量的长度 这段代码正是sklearn.mean_绝对_2“vectors”错误的底层处理 我不能理解的是矩阵的方法 >>> y_true = [[0.5, 1], [-1, 1], [7, -6]] >>> y_pred = [[0, 2

mean_absolute_error函数计算mean absolute error,这是一种风险度量,对应于绝对误差损失或L1范数损失的预期值

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

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

这段代码正是sklearn.mean_绝对_2“vectors”错误的底层处理

我不能理解的是矩阵的方法

>>> 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的基本方法吗?

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

为什么要除以4?预测/真值中各有6个数字。总绝对差值为4.5。结果为4.5/6=0.75。@xdurch0非常感谢!请移动你的评论来回答,我会接受的。
>>> 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