2つの行列間の平均二乗誤差を計算するためのnumpyにはメソッドがありますか?Numpyの平均二乗誤差?
私は検索を試みましたが、何も見つかりませんでした。それは別の名前の下にありますか?
もしそうでなければ、これをどのように克服しますか?あなたはそれを自分で書くのですか、別のライブラリを使いますか?
2つの行列間の平均二乗誤差を計算するためのnumpyにはメソッドがありますか?Numpyの平均二乗誤差?
私は検索を試みましたが、何も見つかりませんでした。それは別の名前の下にありますか?
もしそうでなければ、これをどのように克服しますか?あなたはそれを自分で書くのですか、別のライブラリを使いますか?
使用できる@larsmansによって示唆されるように:
mse = ((A - B) ** 2).mean(axis=ax)
ax=1
平均が沿って実行されると、アレイax=0
と列ごとに配列を返す配列ax=None
平均は配列に沿って要素ごとに実行され、単一の値を返します。私が間違っていれば正解ですが、(MatrixA-MatrixB)** 2を実行すると行列乗算を実行しようとしますが、これは各要素を個別に四角形とは異なるものです。次の数式を非正方行列で使用しようとすると、ValueErrorが発生します。 – renatov
@renatovはナンプィ配列でこの式は要素ごとに適用され、行列の乗算は行われません –
@Saulo Castro、私はちょうどテストしましたが、結果は要素的ではないと主張する必要があります。私はPython 2.7.5とNumpy 1.7.1を使用しています。私は行列aを作成し、次のコマンドを使用して二乗しました: 'a = numpy.matrix([[5,5]、[5、5]])'そして 'a ** 2'。結果は、numpy行列の行列([[50、50]、[50、50])) 'であり、numpy行列の乗算は要素単位ではない**ことを示しています。 – renatov
これは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のための文書から
def MSE(Y, YH):
return np.square(Y - YH).mean()
:「入力の要素単位の正方形を返します」
さらにnumpyの
np.square(np.subtract(A, B)).mean()
'((A - B)** 2).mean(軸= AX)' 'AX =は '0' Axが= 1 'であり、列単位であります'ax = None'は総計を返します。 –
あなたが答えとして公式化すれば、私はそれを受け入れます。 – TheMeaningfulEngineer
この答えは正しくありません。なぜなら、numpy行列を四角形にすると、個々の要素ごとに行列乗算rathar squareを実行するからです。サウロ・カストロの答えで私のコメントをチェックしてください。 (PS:Python 2.7.5とNumpy 1.7.1を使ってテストしました) – renatov