Tekil Değer Ayrışmasını boyutsallık azaltma tekniği olarak kullanıyorum.
N
Boyut vektörleri göz önüne alındığında D
, fikir, ilişkisiz boyutların dönüştürülmüş bir uzayındaki özellikleri temsil etmek, bu da bu alanın özvektörlerindeki verilerin bilgilerinin çoğunu azalan bir önem sırasına yoğunlaştırmaktır.
Şimdi bu prosedürü zaman serisi verilerine uygulamaya çalışıyorum. Sorun şu ki, tüm diziler aynı uzunlukta değil, bu yüzden gerçekten num-by-dim
matrisi inşa edemem ve SVD'yi uygulayamıyorum. İlk düşüncem, bir num-by-maxDim
matris oluşturarak ve boş alanları sıfırlarla doldurarak matrisi sıfırlarla doldurmaktı, ama bunun doğru yol olup olmadığından emin değilim.
Benim sorum, SVD'nin farklı uzunluktaki zaman serilerine boyutsallık azaltma yaklaşımı nasıl? Alternatif olarak, genellikle zaman serileri ile kullanılan başka benzer eigenspace gösterimi yöntemleri var mı?
Fikri göstermek için bir parça MATLAB kodu aşağıdadır:
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
(Çoğunlukla MATLAB'da kod yazıyorum, ancak R / Python / .. da okuyacak kadar rahatım)