Skip to content

Update autoencoders.md

Hendrik Weiß requested to merge henwe--fh-zwickau.de-main-patch-43606 into main

Wie ist das eigentlich gedacht mit dem RMSE, wenn die Sampels Vektoren sind statt 1d-Werte?

np.sqrt(((X - X_pred) ** 2).sum() / len(X))) macht ja dann was anderes als np.sqrt(((X - X_pred) ** 2).mean())), zweiteres ist aber das, was sklearn.metrics.mean_squared_error(X, X_pred,squared=False) tut (tuen sollte, s. u.) bzw. neuerdings sklearn.metrics.root_mean_squared_error(X, X_pred)

Im Projekt ist dann zweite Variante angewendet: print('RMSE (PCA): ', np.sqrt(((X - X_pca) ** 2).sum() / X.shape[0] / (28 * 28))) print('RMSE (autoencoder):', np.sqrt(((X - X_pred) ** 2).sum() / X.shape[0] / (28 * 28)))

Warum der RMSE von SKlearn allerdings was anderes macht ist mir unklar: y_true = np.array( [[0.5, 1], [-1, 1], [7, -6]]) y_pred = np.array([[0, 2], [-1, 2], [8, -5]]) root_mean_squared_error(y_true, y_pred),np.sqrt(((y_true-y_pred)**2).mean()),np.sqrt(mean_squared_error(y_true, y_pred))

(0.8227486121839513, 0.8416254115301732, 0.8416254115301732)

irgendwie mittelt der Komponentenweise:

(np.sqrt(((y_true-y_pred)**2).mean(axis=0))).mean() 0.8227486121839513

Edited by Hendrik Weiß

Merge request reports