ฉันกำลังใช้การลดค่าเอกพจน์เป็นเทคนิคการลดขนาด
ให้N
เวกเตอร์ของมิติD
ความคิดคือการแสดงคุณสมบัติในพื้นที่แปลงของมิติ uncorrelated ซึ่งรวมส่วนใหญ่ของข้อมูลของข้อมูลใน eigenvector ของพื้นที่นี้ในลำดับความสำคัญลดลง
ตอนนี้ฉันกำลังพยายามใช้ขั้นตอนนี้กับข้อมูลอนุกรมเวลา ปัญหาคือว่าบางส่วนไม่ได้มีความยาวเท่ากันดังนั้นฉันจึงไม่สามารถสร้างnum-by-dim
เมทริกซ์และใช้ SVD ได้ ความคิดแรกของฉันคือการวางเมทริกซ์ด้วยเลขศูนย์ด้วยการสร้างnum-by-maxDim
เมทริกซ์และเติมช่องว่างด้วยศูนย์ แต่ฉันไม่แน่ใจว่านั่นเป็นวิธีที่ถูกต้องหรือไม่
คำถามของฉันคือคุณจะใช้วิธี SVD ในการลดมิติข้อมูลเป็นอนุกรมเวลาที่มีความยาวต่างกันได้อย่างไร หรือมีวิธีการอื่นที่คล้ายคลึงกันของการเป็นตัวแทน eigenspace มักจะใช้กับอนุกรมเวลา?
ด้านล่างเป็นส่วนหนึ่งของรหัส 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 / .. เช่นกัน)