Điều tôi thường sử dụng làm thước đo lỗi tái cấu trúc (trong ngữ cảnh của PCA, nhưng cũng là các phương pháp khác) là hệ số xác định và Lỗi bình phương gốc (hoặc RMSE bình thường hóa). Hai cái này rất dễ tính toán và cho bạn ý tưởng nhanh về việc tái thiết đã làm gì.R2
Phép tính
Giả sử là dữ liệu gốc của bạn và là dữ liệu nén.Xf
Biến của biến có thể được tính là:R2ith
R2i=1−∑nj=1(Xj,i−fj,i)2∑nj=1X2j,i
Vì cho phù hợp hoàn hảo, bạn có thể đánh giá việc tái cấu trúc bằng cách đóng với 1.0.R2=1.0R2
RMSE của biến có thể được tính là:ith
RMSEi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯−−−−−−−−√
mà bạn cũng có thể chuẩn hóa theo số lượng phù hợp với mình (định mức ), tôi thường chuẩn hóa theo giá trị trung bình, NRMSE là như vậy:N
NRMSEi=RMSEiNi=(Xi−fi)2¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯X2i¯¯¯¯¯¯¯−−−−−−√
Tính toán
Trong trường hợp bạn đang sử dụng Python, bạn có thể tính toán những điều này như sau:
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))
nơi X
là dữ liệu gốc và f
là dữ liệu nén.
Hình dung
Trong trường hợp nó hữu ích cho bạn để thực hiện một số phân tích độ nhạy, thì bạn có thể đánh giá trực quan cách hoặc RMSE thay đổi khi bạn thay đổi các tham số nén của mình. Chẳng hạn, điều này có thể hữu ích trong bối cảnh PCA khi bạn muốn so sánh các bản dựng lại với số lượng Thành phần chính được giữ lại ngày càng tăng. Dưới đây bạn thấy rằng việc tăng số lượng chế độ sẽ giúp bạn phù hợp hơn với mô hình:R2