[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)