특이 값 감소 기술로 특이 값 분해를 사용하고 있습니다.
N
차원이 주어진 벡터는 D
상관 관계가없는 차원으로 변환 된 공간의 특징을 나타내며,이 공간의 고유 벡터에있는 데이터 정보의 대부분을 중요도가 감소하는 순서로 요약합니다.
이제이 절차를 시계열 데이터에 적용하려고합니다. 문제는 모든 시퀀스의 길이가 같지 않기 때문에 실제로 num-by-dim
행렬을 만들고 SVD를 적용 할 수 없다는 것 입니다. 내 첫 번째 생각은 num-by-maxDim
행렬을 만들고 빈 공간을 0으로 채워서 행렬을 0으로 채우는 것이었지만 올바른 방법인지는 확실하지 않습니다.
내 질문은 어떻게 다른 길이의 시계열에 대한 차원 축소의 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); % reduced and transformed data
(주로 MATLAB으로 코딩하고 있지만 R / Python / ..도 읽을 수있을 정도로 편안합니다.)