Tôi có ma trận , chứa mẫu trong không gian hai chiều . Bây giờ tôi muốn mã hóa phân tích thành phần chính của mình (PCA) trong Matlab. Tôi hạ xuống trước.X N = 20 D = 100 X X 0
Tôi đã đọc từ mã của ai đó rằng trong các tình huống như vậy trong đó chúng ta có nhiều chiều hơn các quan sát, chúng ta không còn phân tách ma trận hiệp phương sai của . Thay vào đó, chúng tôi Eigen-phân hủy . Tại sao nó đúng?1
Ma trận hiệp phương sai thông thường có kích thước , mỗi phần tử cho chúng ta biết hiệp phương sai giữa hai chiều. Đối với tôi, thậm chí không có kích thước chính xác! Đó là ma trận , vậy nó sẽ cho chúng ta biết điều gì? Hiệp phương sai giữa hai quan sát?!1 N×N
n<p
nó cần ít RAM hơn và ít thời gian hơn để phân hủy XX'
vì nó có kích thước nhỏ hơn.
XX'
sang PC. Bạn có thể vui lòng chỉ cho tôi một cách ngắn gọn như thế nào? Cho rằng PC chỉ là người bản địa của ma trận hiệp phương sai, tôi đã cố gắng chuyển từ bản địa XX'
sang bản địa của ma trận hiệp phương sai X'X
, nhưng không thành công.
X'X
vàXX'
(cũng như svd củaX
vàX'
). Cái được gọi là "tải" trong một trường hợp sẽ được gọi là "điểm số pc" trong trường hợp khác và ngược lại. Bởi vì cả hai chỉ là tọa độ ( xem, ví dụ ) và các trục, "kích thước chính" là như nhau.