[python] Numpy의 평균 제곱 오차?

두 행렬 사이의 평균 제곱 오차를 계산하는 방법이 numpy에 있습니까?

나는 검색을 시도했지만 아무것도 찾지 못했습니다. 다른 이름으로되어 있습니까?

없는 경우 어떻게 극복합니까? 직접 작성하거나 다른 lib를 사용합니까?



답변

당신이 사용할 수있는:

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

또는

mse = (np.square(A - B)).mean(axis=ax)
  • 함께 ax=0평균 어레이를 돌려 각 열에 대해 행을 따라 수행
  • 함께 ax=1평균 어레이를 돌려 각 행, 열을 따라 수행
  • 함께 ax=None평균 스칼라 값을 반환하는 배열을 따라 소자 현명한 수행


답변

이것은의 일부는 numpy아니지만 numpy.ndarray개체 와 함께 작동 합니다. A numpy.matrix는 a numpy.ndarray와 a 로 변환 될 수 있습니다 .numpy.ndarray 로 변환 할 수 있고 a는 numpy.matrix.

from sklearn.metrics import mean_squared_error
mse = mean_squared_error(A, B)

축 제어 방법에 대한 문서는 Scikit Learn mean_squared_error 를 참조하십시오 .


답변

더 numpy

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


답변

행렬 곱셈과 관련된 문제를 피하는 허용되는 답변의 또 다른 대안 :

 def MSE(Y, YH):
     return np.square(Y - YH).mean()

np.square에 대한 문서에서 : “입력의 요소 별 제곱을 반환합니다.”


답변

그냥 킥

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


답변

평균 제곱 오차 (분산) 및 제곱근 (표준 편차)을 계산하는 표준 numpy 방법은 numpy.var()및 입니다. 여기여기를numpy.std() 참조 하세요 . 그것들은 행렬에 적용되며 .numpy.mean()

이 기능을 사용할 수 있기 전에 질문과 이전 답변이 게시되었을 수 있다고 가정합니다.


답변