J'ai défini une fonction RMSE personnalisée :
def rmse(y_pred, y_true):
return K.sqrt(K.mean(K.square(y_pred - y_true)))
Je l'évaluais par rapport à l'erreur quadratique moyenne fournie par Keras :
keras.losses.mean_squared_error(y_true, y_pred)
Les valeurs que j'obtiens pour les métriques MSE et RMSE respectivement pour certaines (les mêmes) prédictions sont les suivantes :
mse: 115.7218 - rmse: 8.0966
Maintenant, quand je prends la racine de l'EMS, j'obtiens 10.7574
qui est évidemment plus élevée que la RMSE produite par la fonction RMSE personnalisée. Je n'ai pas été en mesure de comprendre pourquoi il en est ainsi, et je n'ai pas trouvé d'articles connexes sur ce sujet particulier. Y a-t-il une erreur dans la fonction RMSE que je ne vois tout simplement pas ? Ou est-ce lié à la façon dont Keras définit la fonction RMSE ? axis=-1
dans la fonction MSE (dont je n'ai pas encore bien compris le but) ?
C'est ici que j'invoque le RMSE et le MSE :
model.compile(loss="mae", optimizer="adam", metrics=["mse", rmse])
Je m'attendrais donc à ce que la racine de l'EQM soit la même que l'EQM.
J'ai initialement posé cette question sur Cross Validated mais elle a été mise en attente comme hors sujet.