python - 有人可以说明 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个矩阵的基本方法吗?
解决方案
以矩阵作为输入,总损失简单地除以元素总数。在您的示例中,总损失为 4.5 (0.5 + 1 + 0 + 1 + 1 + 1),我们有六个元素(三乘以二),因此绝对误差的输出为 4.5/6 = 0.75,正如预期的那样。
推荐阅读
- flutter - 如何去除表格末尾的间距
- npm - npm 注册表,是否可以将 Java 或 C# 库发布到 npm 注册表中
- git - git difftool 无法识别当前文件路径
- amazon-web-services - 为什么即使表中没有项目,我的 aws dynamodb TTL 也会关闭幻像 INSERT 和 REMOVE 事件?
- python - 与先前创建的实例属性具有相同名称和类型的第二个实例未初始化
- android - WebView 正在剪辑 android 4.4 中的网页
- java - 如何在android中使用Drawable绘制笔画?
- javascript - !!在节点中使用?这将检查节点和数组长度中的未定义以及在所有情况下都可以使用的空对象吗
- javascript - 为什么箭头函数返回未定义
- pine-script - TradingView 中的 Renko 函数