PCA khi kích thước lớn hơn số lượng mẫu


21

Tôi đã bắt gặp một kịch bản trong đó tôi có 10 tín hiệu / người cho 10 người (vì vậy 100 mẫu) chứa 14000 điểm dữ liệu (kích thước) mà tôi cần chuyển đến bộ phân loại. Tôi muốn giảm tính chiều của dữ liệu này và PCA dường như là cách để làm điều đó. Tuy nhiên, tôi chỉ có thể tìm thấy các ví dụ về PCA trong đó số lượng mẫu lớn hơn số lượng kích thước. Tôi đang sử dụng ứng dụng PCA tìm thấy PC sử dụng SVD. Khi tôi vượt qua nó, tập dữ liệu 100x14000 của tôi có 101 máy tính được trả về nên phần lớn kích thước rõ ràng bị bỏ qua. Chương trình chỉ ra 6 PC đầu tiên chứa 90% phương sai.

Đây có phải là một giả định hợp lý rằng 101 PC này chứa cơ bản tất cả các phương sai và các kích thước còn lại là không thể bỏ qua?

Một trong những bài báo tôi đã đọc tuyên bố rằng, bằng cách sử dụng bộ dữ liệu tương tự (mặc dù chất lượng thấp hơn một chút) so với của tôi, họ có thể giảm 4500 kích thước xuống còn 80 giữ lại 96% thông tin ban đầu. Các sóng giấy trên các chi tiết của kỹ thuật PCA được sử dụng, chỉ có 3100 mẫu có sẵn và tôi có lý do để tin rằng ít mẫu hơn được sử dụng để thực sự thực hiện PCA (để loại bỏ sai lệch khỏi giai đoạn phân loại).

Tôi có thiếu thứ gì không hay đây thực sự là cách mà PCA được sử dụng với bộ dữ liệu cỡ mẫu thấp có kích thước cao? Bất kì phản hồi nào cũng sẽ được đánh giá cao.


2
Nếu bạn không có nhiều dữ liệu hơn kích thước, thật khó để tìm ra hướng loại bỏ hầu hết các biến đổi whihc là thành phần chính đầu tiên được cho là làm. Nói chung là lời nguyền của chiều. Dữ liệu có xu hướng di chuyển ra khỏi trung tâm trong kích thước cao. Bellman đã viết về điều này trong những năm 1960.
Michael R. Chernick

Câu trả lời:


9

Tôi sẽ xem xét vấn đề từ một góc độ hơi khác: mức độ phức tạp mà một mô hình bạn có thể chi trả chỉ với 10 đối tượng / 100 mẫu?

Và câu hỏi đó tôi thường trả lời với: ít hơn 100 PC. Lưu ý rằng tôi làm việc trên một loại dữ liệu khác (phổ rung động), vì vậy mọi thứ có thể thay đổi một chút. Trong lĩnh vực của tôi, một thiết lập chung sẽ sử dụng 10 hoặc 25 hoặc 50 PC được tính từ phổ O (1000) của các đối tượng O (10).

Đây là những gì tôi sẽ làm:

  • Nhìn vào phương sai được bao phủ bởi 100 PC đó. Tôi thường thấy rằng chỉ có vài thành phần thực sự đóng góp vào phương sai trong dữ liệu của chúng tôi.

  • Tôi rất thích PLS là tiền xử lý để clasization trên PCA vì nó thực hiện công việc tốt hơn nhiều trong việc phân loại các hướng có độ biến thiên cao không giúp phân loại (trong trường hợp của tôi có thể là các biến thể tập trung, độ dày mẫu khác nhau ,. ..). Theo kinh nghiệm của tôi, tôi thường nhận được các phân loại tương tự với 10 biến tiềm ẩn PLS hoặc 25 đến 50 PC.

  • Các mẫu xác nhận cần được xử lý với vòng xoay PCA chỉ được tính từ tập huấn luyện, nếu không, việc xác thực có thể (và trong các trường hợp cực đoan như bạn có thể sẽ có) có độ lệch quá lớn.
    Nói cách khác, nếu bạn thực hiện xác thực ngoài bootstrap hoặc xác thực chéo, tiền xử lý PCA hoặc PLS cần được tính riêng cho từng tổ hợp bộ thử nghiệm / thử nghiệm riêng biệt.


Cảm ơn cho bài viết rất nhiều thông tin. Tôi đang làm việc với dữ liệu tín hiệu sinh trắc học. Để thực hiện phân loại với hiệu suất hợp lý, tôi cần ít hơn 100 PC, ở đâu đó trong phạm vi 25-50 sẽ ổn. Tôi đã cân nhắc việc cắt giảm tỷ lệ lấy mẫu của mình để giảm số lượng mẫu tôi cần kiểm tra, nhưng bạn có cho rằng sự đánh đổi độ phân giải sẽ có giá trị hay không, liệu nó có ảnh hưởng gì không? ? Mặc dù tôi cần PCA để phù hợp với các nghiên cứu khác trong lĩnh vực này, tôi chắc chắn sẽ xem xét PLS như một cách tiếp cận thứ cấp.
Gia-cơ

1
@James: Tôi sợ câu hỏi về tỷ lệ lấy mẫu không thể được trả lời mà không biết dữ liệu của bạn. Thực chất đó là câu hỏi về cỡ mẫu hiệu quả. Không biết gì thêm, chúng tôi chỉ có thể nói rằng nó ở đâu đó giữa n (người) và n (mẫu). Nếu tất cả 10 mẫu của 1 người giống nhau nhiều hơn so với các mẫu của một người khác, thì nhiều mẫu không thêm nhiều thông tin vào tập dữ liệu. Bạn có thể kiểm tra bằng cách xây dựng một mô hình với tất cả các mẫu và một mô hình thứ hai chỉ có một mẫu cho mỗi người và so sánh hiệu suất của họ.
cbeleites hỗ trợ Monica

@James: (phần 2) Nếu bạn nghĩ rằng các mẫu của một người khá giống nhau, thì bạn nên lưu ý rằng các bộ xác nhận và đào tạo không chia sẻ cá nhân (tức là tất cả các mẫu của một người đều đang được đào tạo hoặc trong Tập kiểm tra).
cbeleites hỗ trợ Monica

Cảm ơn cho việc trở lại với tôi. Dữ liệu của tôi có mức độ biến đổi khá cao với sự chồng chéo đáng kể trong không gian mẫu giữa các lớp người dùng. Nhưng xin lỗi, thay vì giảm các mẫu tôi có nghĩa là giảm độ phân giải trên 14000 điểm dữ liệu, vì vậy chỉ nói mỗi điểm 2, 3 hoặc 4 được sử dụng trong PCA, nhưng với cùng số lượng mẫu người dùng thực tế. Tôi tò mò liệu độ phân giải giảm như vậy có được dự kiến ​​sẽ có tác động tích cực, tiêu cực hay không ảnh hưởng gì đến kết quả của PCA hay không vì kích thước của tôi đã lớn hơn nhiều so với các mẫu của tôi.
James

1
@James, điều này một lần nữa phụ thuộc. Nhưng thay vì chỉ sử dụng mỗi điểm n , tôi khuyên bạn nên lấy trung bình / tạo khối cho mỗi n điểm, vì vậy bạn giảm kích thước và tăng tín hiệu thành tỷ lệ nhiễu. Tìm hiểu xem (bất kể kích thước điểm dữ liệu của bạn là gì; tôi sẽ đặt độ phân giải "phổ" ở đây) mà bạn cần là IMHO một điểm đặc trưng cho đặc tính hóa vấn đề / dữ liệu / phân loại của bạn. th
cbeleites hỗ trợ Monica


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.