Ce que j'utilise habituellement comme mesure de l'erreur de reconstruction (dans le contexte de l'ACP, mais aussi d'autres méthodes) est le coefficient de détermination et l'erreur quadratique moyenne (ou RMSE normalisée). Ces deux sont faciles à calculer et vous donnent une idée rapide de ce que la reconstruction a fait.R2
Calcul
Supposons que soit vos données d'origine et les données compressées.Xf
Le de la variable peut être calculé comme suit:R2ith
R2i=1−∑nj=1(Xj,i−fj,i)2∑nj=1X2j,i
Puisque pour un ajustement parfait, vous pouvez juger de la reconstruction en fonction de la proximité du à 1,0.R2=1.0R2
Le RMSE de la variable peut être calculé comme suit:ith
RMSEi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯−−−−−−−−√
que vous pouvez également normaliser par une quantité qui vous convient (norme ), je normalise souvent par la valeur moyenne, le NRMSE est donc:N
NRMSEi=RMSEiNi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯X2i¯¯¯¯¯¯¯−−−−−−√
Calcul
Si vous utilisez Python, vous pouvez les calculer comme suit:
from sklearn.metrics import r2_score
from sklearn.metrics import mean_squared_error
from math import sqrt
import numpy as np
r2 = r2_score(X, f)
rmse = sqrt(mean_squared_error(X, f))
# RMSE normalised by mean:
nrmse = rmse/sqrt(np.mean(X**2))
où X
sont les données d'origine et f
les données compressées.
Visualisation
Dans le cas où il est utile pour vous de faire une analyse de sensibilité, vous pouvez alors juger visuellement comment le ou le RMSE changent lorsque vous changez les paramètres de votre compression. Par exemple, cela peut être pratique dans le contexte de l'ACP lorsque vous souhaitez comparer des reconstructions avec un nombre croissant de composants principaux conservés. Ci-dessous, vous voyez que l'augmentation du nombre de modes permet de vous rapprocher du modèle:R2