Existe-t-il une méthode numérique permettant de calculer l'erreur quadratique moyenne entre deux matrices?
J'ai essayé de chercher mais n'en ai trouvé aucun. Est-ce sous un nom différent?
S'il n'y en a pas, comment surmontez-vous cela? Est-ce que vous écrivez vous-même ou utilisez une autre bibliothèque?
Vous pouvez utiliser:
mse = ((A - B)**2).mean(axis=ax)
Ou
mse = (np.square(A - B)).mean(axis=ax)
ax=0
la moyenne est effectuée le long de la ligne, pour chaque colonne, renvoyant un tableauax=1
la moyenne est effectuée le long de la colonne, pour chaque ligne, renvoyant un tableauax=None
la moyenne est effectuée élément par élément le long du tableau, renvoyant une valeur scalaireCela ne fait pas partie de numpy
, mais cela fonctionnera avec numpy.ndarray
objets. UNE numpy.matrix
peut être converti en un numpy.ndarray
et un numpy.ndarray
peut être converti en un numpy.matrix
.
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(A, B)
Voir Scikit Learn mean_squared_error pour obtenir de la documentation sur la façon de contrôler les axes.
Encore plus numpy
np.square(np.subtract(A, B)).mean()
Une autre alternative à la réponse acceptée qui évite tout problème avec la multiplication de matrice:
def MSE(Y, YH):
return np.square(Y - YH).mean()
Dans les documents pour np.square: "Renvoie le carré élément par élément de l'entrée."