2つの行列間の平均二乗誤差を計算する方法は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.ndarray
に変換でき、numpy.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のドキュメントから:「入力の要素単位の正方形を返します。」