두 행렬 사이의 평균 제곱 오차를 계산하는 방법이 numpy에 있습니까?
나는 검색을 시도했지만 아무것도 찾지 못했습니다. 다른 이름으로되어 있습니까?
없는 경우 어떻게 극복합니까? 직접 작성하거나 다른 lib를 사용합니까?
두 행렬 사이의 평균 제곱 오차를 계산하는 방법이 numpy에 있습니까?
나는 검색을 시도했지만 아무것도 찾지 못했습니다. 다른 이름으로되어 있습니까?
없는 경우 어떻게 극복합니까? 직접 작성하거나 다른 lib를 사용합니까?
답변:
당신이 사용할 수있는:
mse = ((A - B)**2).mean(axis=ax)
또는
mse = (np.square(A - B)).mean(axis=ax)
ax=0
평균 어레이를 돌려 각 열에 대해 행을 따라 수행ax=1
평균 어레이를 돌려 각 행, 열을 따라 수행ax=None
평균 스칼라 값을 반환하는 배열을 따라 소자 현명한 수행np.ndarray
하는 요소 현명한 곱셈을 할 것입니다 a**2
,하지만 사용 np.matrixlib.defmatrix.matrix
에 대한 행렬 곱셈 할 것입니다 a**2
...
Acmp = np.array(A, dtype=int)
)
np.nanmean(((A - B) ** 2))
값이없는 경우
이것은의 일부는 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 를 참조하십시오 .
행렬 곱셈과 관련된 문제를 피하는 허용되는 답변의 또 다른 대안 :
def MSE(Y, YH):
return np.square(Y - YH).mean()
np.square에 대한 문서에서 : "입력의 요소 별 제곱을 반환합니다."
((A - B) ** 2).mean(axis=ax)
여기서ax=0
열 단위 인ax=1
당 행이고ax=None
총합을 준다.