¿Existe un método en numpy para calcular el error cuadrático medio entre dos matrices?
Intenté buscar pero no encontré ninguno. ¿Tiene un nombre diferente?
Si no lo hay, ¿cómo se supera? ¿Lo escribe usted mismo o usa una biblioteca diferente?
¿Existe un método en numpy para calcular el error cuadrático medio entre dos matrices?
Intenté buscar pero no encontré ninguno. ¿Tiene un nombre diferente?
Si no lo hay, ¿cómo se supera? ¿Lo escribe usted mismo o usa una biblioteca diferente?
((A - B) ** 2).mean(axis=ax), dondeax=0es por columna,ax=1es por fila yax=Noneda un total general.Respuestas:
Puedes usar:
mse = ((A - B)**2).mean(axis=ax)O
ax=0el promedio se realiza a lo largo de la fila, para cada columna, devolviendo una matrizax=1el promedio se realiza a lo largo de la columna, para cada fila, devolviendo una matrizax=Noneel promedio se realiza por elementos a lo largo de la matriz, devolviendo un valor escalarfuente
np.ndarrayhará una multiplicación de elementos paraa**2, peronp.matrixlib.defmatrix.matrixusará hará una multiplicación de matrices paraa**2...Acmp = np.array(A, dtype=int))np.nanmean(((A - B) ** 2))si faltan valoresEsto no es parte de
numpy, pero funcionará connumpy.ndarrayobjetos. Anumpy.matrixse puede convertir en unnumpy.ndarrayy unanumpy.ndarrayse puede convertir en unanumpy.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.
fuente
Aún más numpy
fuente
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 : "Devuelve el cuadrado de elementos de la entrada".
fuente
Sólo por diversión
mse = (np.linalg.norm (AB) ** 2) / len (A)
fuente
Los métodos numéricos estándar para calcular el error cuadrático medio (varianza) y su raíz cuadrada (desviación estándar) son
numpy.var()ynumpy.std(), consulte aquí y aquí . Se aplican a matrices y tienen la misma sintaxis quenumpy.mean().Supongo que la pregunta y las respuestas anteriores podrían haberse publicado antes de que estas funciones estuvieran disponibles.
fuente