Saya menggunakan Dekomposisi Nilai Singular sebagai teknik reduksi dimensi.
Mengingat N
vektor dimensiD
, idenya adalah untuk mewakili fitur-fitur dalam ruang yang ditransformasi dari dimensi yang tidak berkorelasi, yang memadatkan sebagian besar informasi data dalam vektor eigen ruang ini dalam urutan kepentingan yang menurun.
Sekarang saya mencoba menerapkan prosedur ini ke data deret waktu. Masalahnya adalah bahwa tidak semua urutan memiliki panjang yang sama, jadi saya benar-benar tidak bisa membangun num-by-dim
matriks dan menerapkan SVD. Pikiran pertama saya adalah mengisi matriks dengan nol dengan membangun num-by-maxDim
matriks dan mengisi ruang kosong dengan nol, tapi saya tidak begitu yakin apakah itu cara yang benar.
Pertanyaan saya adalah bagaimana Anda pendekatan pengurangan dimensi SVD ke deret waktu dengan panjang yang berbeda? Atau adakah metode representasi eigenspace serupa lainnya yang biasa digunakan dengan deret waktu?
Di bawah ini adalah bagian dari kode MATLAB untuk menggambarkan ide:
X = randn(100,4); % data matrix of size N-by-dim
X0 = bsxfun(@minus, X, mean(X)); % standarize
[U S V] = svd(X0,0); % SVD
variances = diag(S).^2 / (size(X,1)-1); % variances along eigenvectors
KEEP = 2; % number of dimensions to keep
newX = U(:,1:KEEP)*S(1:KEEP,1:KEEP); % reduced and transformed data
(Saya mengkode sebagian besar dalam MATLAB, tapi saya cukup nyaman untuk membaca R / Python / .. juga)