Numpy的平均误差?

时间:2013-05-27 13:59:14

标签: python arrays numpy mean mean-square-error

numpy中是否存在计算两个矩阵之间的均方误差的方法?

我试过搜索但没找到。它的名字不同吗?

如果没有,你怎么克服这个?你自己写的还是使用不同的lib?

6 个答案:

答案 0 :(得分:69)

您可以使用:

mse = ((A - B)**2).mean(axis=ax)

或者

mse = (np.square(A - B)).mean(axis=ax)
  • ax=0沿着行执行平均值,对于每列,返回一个数组
  • ax=1沿着列执行平均值,每行返回一个数组
  • ax=None平均值按数组元素顺序执行,返回标量值

答案 1 :(得分:26)

这不是%Rows的一部分,但它适用于numpy个对象。 numpy.ndarray可以转换为numpy.matrixnumpy.ndarray可以转换为numpy.ndarray

numpy.matrix

有关如何控制轴的文档,请参阅Scikit Learn mean_squared_error

答案 2 :(得分:13)

更加笨拙

np.square(np.subtract(A, B)).mean()

答案 3 :(得分:4)

接受答案的另一种替代方法,可以避免矩阵乘法的任何问题:

text.align

np.square 的文档中:“返回输入的元素方块。”

答案 4 :(得分:4)

只是踢脚

mse =(np.linalg.norm(A-B)** 2)/ len(A)

答案 5 :(得分:0)

用于计算均方误差(方差)及其平方根(标准偏差)的标准numpy方法为<?php ignore_user_abort ( TRUE ); echo "hello\n"; $x=0; $log_filename = ".\\test.txt"; while (@ ob_end_flush()); while ($x<100) { echo($x ."\n"); $status = connection_aborted(); file_put_contents($log_filename, $x ." - " .$status ."\n", FILE_APPEND); $x++; @ flush(); sleep(1); } ?> numpy.var(),请参见herehere。它们适用于矩阵,并且语法与numpy.std()相同。

我认为在这些功能可用之前,问题和先前的答案可能已经发布。