O que costumo usar como medida do erro de reconstrução (no contexto da PCA, mas também em outros métodos) é o coeficiente de determinação e o erro médio quadrático da raiz (ou RMSE normalizado). Esses dois são fáceis de calcular e dão uma idéia rápida do que a reconstrução fez.R2
Cálculo
Vamos assumir que são seus dados originais são os dados compactados.Xf
O da variável pode ser calculado como:R2ith
R2i=1−∑nj=1(Xj,i−fj,i)2∑nj=1X2j,i
Como para um ajuste perfeito, você pode julgar a reconstrução pela proximidade do a 1,0.R2=1.0R2
O RMSE da variável pode ser calculado como:ith
RMSEi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯−−−−−−−−√
que você também pode normalizar por uma quantidade que combina com você (norma ), eu normalmente normalizo pelo valor médio, o NRMSE é assim:N
NRMSEi=RMSEiNi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯X2i¯¯¯¯¯¯¯−−−−−−√
Computação
Caso você esteja usando Python, você pode calculá-los como:
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))
Onde X
estão os dados originais e f
os dados compactados.
Visualização
Caso seja útil fazer alguma análise de sensibilidade, você poderá julgar visualmente como o ou o RMSE mudam quando você altera os parâmetros de sua compactação. Por exemplo, isso pode ser útil no contexto do PCA quando você deseja comparar reconstruções com um número crescente de Componentes Principais retidos. Abaixo, você vê que aumentar o número de modos está se aproximando do modelo:R2