如何使用 sklearn.metrics 在 2D numpy.array 上水平(行)计算平均绝对误差?

How to calculate mean absolute error horizontally(row-wise) on 2D numpy.array with sklearn.metrics?

提问人:AlwaysJunior 提问时间:11/2/2022 最后编辑:AlwaysJunior 更新时间:11/2/2022 访问量:414

问:

我试图计算二维数组mean_absolute所有行的误差。这是我的代码:

from sklearn.metrics import mean_absolute_error as mae


arr = np.array([[1.7, 3.1], [2.1, 2.7], [0.9, 0.7], [0.3, 0.8]])
result_arr = np.apply_along_axis(mae, 0, arr[:, 0], arr[:,1])

但是,我得到的结果如下:

array(0.675)

我想得到这样的 mae 值(行):

array([[mae_value1],
       [mae_value2],
       [mae_value3],
       [mae_value4]])

顺便说一句,我必须使用 sklearn.metrics 计算 mae,并且没有循环。有什么有效的方法可以做到这一点吗?

python numpy scikit-学习

评论


答:

0赞 LLaP 11/2/2022 #1

我认为您可能会对平均绝对误差指标感到困惑。 计算两组项目(测试集的预测值和 Y 值)的平均误差,这就是它返回一个数字的原因。mae

您期望的结果表明您正在查看数组每一行的其他指标,而不是所有这些行的平均值。你想在那里看到什么?两个数字之间的差值,这两个数字的绝对值之间的差值等。

如果你真的想得到,你应该明白这个指标是在机器学习的背景下使用的。将数据提供给 时,应从两个源提供数据:来自机器学习算法的预测和来自测试集的 y 值。maesklearnsklearn.mae

如果机器学习不是你的背景,那么你需要提供更多关于你实际在做什么的信息,以便有人帮助你。