¿Error cuadrático medio en Numpy?

¿Existe un método para calcular el error cuadrático medio entre dos matrices?

He intentado buscar pero no encontré ninguno. ¿Está bajo un nombre diferente?

Si no hay, ¿cómo superas esto? ¿Lo escribes tú mismo o usas una biblioteca diferente?

Puedes usar:

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

O

 mse = (np.square(A - B)).mean(axis=ax) 
  • con ax=0 el promedio se realiza a lo largo de la fila, para cada columna, devolviendo una matriz
  • con ax=1 el promedio se realiza a lo largo de la columna, para cada fila, devolviendo una matriz
  • con ax=None el promedio se realiza de manera elemental a lo largo de la matriz, devolviendo un valor escalar

Esto no es parte de numpy , pero funcionará con los objetos numpy.ndarray . Un numpy.matrix se puede convertir en un numpy.ndarray y un numpy.ndarray se puede convertir en un numpy.matrix .

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

Consulte Scikit Learn mean_squared_error para obtener documentación sobre cómo controlar el eje.

Aún más entumecido

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

Otra alternativa a la respuesta aceptada que evita cualquier problema con la multiplicación de matrices:

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

De los documentos para np.square : “Devolver el cuadrado de elementos de la entrada”.