numpy中是否有计算两个矩阵之间的均方误差的方法?
我试过搜索但没有找到。它是在不同的名称下吗?
如果没有,你如何克服这个?您是自己编写还是使用不同的库?
numpy中是否有计算两个矩阵之间的均方误差的方法?
我试过搜索但没有找到。它是在不同的名称下吗?
如果没有,你如何克服这个?您是自己编写还是使用不同的库?
您可以使用:
mse = ((A - B)**2).mean(axis=ax)
或者
mse = (np.square(A - B)).mean(axis=ax)
ax=0
沿行执行平均,对于每一列,返回一个数组ax=1
沿列执行平均值,对于每一行,返回一个数组ax=None
平均值沿数组按元素执行,返回一个标量值这不是 的一部分numpy
,但它适用于numpy.ndarray
对象。Anumpy.matrix
可以转换为 anumpy.ndarray
并且 anumpy.ndarray
可以转换为 a numpy.matrix
。
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(A, B)
有关如何控制轴的文档,请参阅Scikit Learn mean_squared_error 。
更加麻木
np.square(np.subtract(A, B)).mean()
已接受答案的另一种替代方法可以避免矩阵乘法的任何问题:
def MSE(Y, YH):
return np.square(Y - YH).mean()
从文件中np.square
:
Return the element-wise square of the input.
只为踢球
mse = (np.linalg.norm(A-B)**2)/len(A)