5
不同长度时间序列的SVD维数缩减
我正在使用奇异值分解作为降维技术。 给定N维向量D,其思想是表示不相关维的变换空间中的特征,这将以重要性降序将大多数数据信息压缩到该空间的特征向量中。 现在,我正在尝试将此过程应用于时间序列数据。问题在于并非所有序列都具有相同的长度,因此我无法真正构建num-by-dim矩阵并应用SVD。我的第一个想法是通过构建num-by-maxDim矩阵并用零填充空白空间来用零填充矩阵,但是我不确定这是否正确。 我的问题是,如何将SVD降维方法应用于不同长度的时间序列?或者,是否还有其他通常用于时间序列的本征空间表示方法? 下面是一段MATLAB代码来说明这一想法: 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); % …