簡體   English   中英

Numpy 中的均方誤差?

[英]Mean Squared Error in 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對象。 numpy.matrix可以轉換為numpy.ndarraynumpy.ndarray可以轉換為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)

計算均方誤差(方差)及其平方根(標准偏差)的標准 numpy 方法是numpy.var()numpy.std() ,請參見此處此處 它們適用於矩陣並具有與numpy.mean()相同的語法。

我想這個問題和前面的答案可能是在這些功能可用之前發布的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM