如何获得二维数组之间的误差度量?

问题描述 投票:0回答:1

我想计算矩阵A和矩阵B之间的距离。但是,由于某些原因,我不能使用 np.linalg.norm(A-B,axis=1)我唯一能做的就是像 np.linalg.norm(A,axis=1) - np.linalg.norm(B,axis=1)但我想知道,这是否是相同的 np.linalg.norm(A-B,axis=1) ?

python numpy linear-algebra
1个回答
0
投票

正如评论部分所提到的,对于矩阵之间的相似性度量,你总是可以将用于1d向量的基本相似性或 "误差 "度量扩展到矩阵上,如 MSEMAE. 例如,对于 MAE 你可以直接将两个矩阵减去元素归一化。

a = np.random.rand(3,3)
b = np.random.rand(3,3)

(np.abs(a-b)).sum()/np.prod(a.shape)
# 0.2515

或者更简洁地说,用 np.average:

np.average(np.abs(a - b))
# 0.2515

我们也有 sklearn.metrics.mean_absolute_error,也支持 (n_samples, n_outputs) 大小的数组来处理多标签问题。

from sklearn.metrics import mean_absolute_error

mean_absolute_error(a, b)
# 0.2515

或者如果你想在输出中显示单个标签的错误。

mean_absolute_error(a, b, multioutput='raw_values')
# array([0.06629783, 0.43894195, 0.24946039])
© www.soinside.com 2019 - 2024. All rights reserved.