PCA và phân tách thử nghiệm / đào tạo


35

Tôi có một bộ dữ liệu mà tôi có nhiều bộ nhãn nhị phân. Đối với mỗi bộ nhãn, tôi huấn luyện một bộ phân loại, đánh giá nó bằng cách xác thực chéo. Tôi muốn giảm kích thước bằng phân tích thành phần chính (PCA). Câu hỏi của tôi là:

Có thể thực hiện PCA một lần cho toàn bộ tập dữ liệu và sau đó sử dụng tập dữ liệu mới có thứ nguyên thấp hơn để xác thực chéo như được mô tả ở trên không? Hoặc tôi có cần thực hiện một PCA riêng cho mỗi tập huấn luyện (điều đó có nghĩa là thực hiện một PCA riêng cho mỗi phân loại và cho mỗi lần xác thực chéo)?

Một mặt, PCA không sử dụng nhãn. Mặt khác, nó sử dụng dữ liệu thử nghiệm để thực hiện chuyển đổi, vì vậy tôi sợ nó có thể làm sai lệch kết quả.

Tôi nên đề cập rằng ngoài việc tiết kiệm cho tôi một số công việc, thực hiện PCA một lần trên toàn bộ tập dữ liệu sẽ cho phép tôi hình dung bộ dữ liệu cho tất cả các bộ nhãn cùng một lúc. Nếu tôi có PCA khác nhau cho mỗi bộ nhãn, tôi sẽ cần trực quan hóa từng bộ nhãn riêng biệt.


Để tham khảo trong tương lai. Xem câu hỏi này về cách thực hiện xác thực chéo với PCA trong R với caretgói: PCA và Xác thực chéo k-Fold trong Caret .
amip nói Phục hồi lại


Câu trả lời:


34

Để đo lỗi tổng quát hóa, bạn cần thực hiện sau: một PCA riêng cho mỗi tập huấn luyện (có nghĩa là thực hiện một PCA riêng cho mỗi phân loại và cho mỗi lần gấp CV).

Sau đó, bạn áp dụng phép chuyển đổi tương tự cho tập kiểm tra: tức là bạn không thực hiện PCA riêng trên tập kiểm tra! Bạn trừ đi giá trị trung bình (và nếu cần chia cho độ lệch chuẩn) của tập huấn luyện, như được giải thích ở đây: Không tập trung vào tập kiểm tra sau PCA trên tập huấn luyện . Sau đó, bạn chiếu dữ liệu lên PC của tập huấn luyện.


  • Bạn sẽ cần xác định một tiêu chí tự động cho số lượng PC sẽ sử dụng.
    Vì đây chỉ là bước giảm dữ liệu đầu tiên trước khi phân loại "thực tế", sử dụng quá nhiều PC có thể sẽ không ảnh hưởng đến hiệu suất. Nếu bạn có một kỳ vọng có bao nhiêu PC sẽ tốt từ kinh nghiệm, bạn có thể chỉ cần sử dụng nó.

  • Sau đó, bạn cũng có thể kiểm tra xem việc làm lại PCA cho mọi mô hình thay thế có cần thiết hay không (lặp lại phân tích chỉ với một mô hình PCA). Tôi nghĩ rằng kết quả của bài kiểm tra này là đáng báo cáo.

  • Tôi đã từng đo độ lệch của việc không lặp lại PCA và thấy rằng với dữ liệu phân loại quang phổ của mình, tôi chỉ phát hiện được một nửa tỷ lệ lỗi tổng quát hóa khi không làm lại PCA cho mỗi mô hình thay thế.

Điều đó đang được nói, bạn có thể xây dựng một mô hình PCA bổ sung của toàn bộ tập dữ liệu cho mục đích mô tả (ví dụ trực quan hóa). Chỉ cần chắc chắn rằng bạn giữ hai cách tiếp cận tách biệt với nhau.


Tôi vẫn cảm thấy khó có được cảm giác về việc một PCA ban đầu trên toàn bộ tập dữ liệu sẽ làm sai lệch kết quả mà không nhìn thấy các nhãn lớp.

Nhưng nó thấy dữ liệu. Và nếu phương sai giữa các lớp lớn so với phương sai trong lớp, phương sai giữa các lớp sẽ ảnh hưởng đến phép chiếu PCA. Thông thường bước PCA được thực hiện vì bạn cần ổn định phân loại. Đó là, trong một tình huống mà các trường hợp bổ sung ảnh hưởng đến mô hình.

Nếu phương sai giữa các lớp là nhỏ, sai lệch này sẽ không nhiều, nhưng trong trường hợp đó, PCA sẽ không giúp phân loại: phép chiếu PCA sau đó không thể giúp nhấn mạnh sự tách biệt giữa các lớp.


Cảm ơn, đây chính xác là những gì tôi nghĩ vì vậy thật tốt khi nghe nó từ một nguồn độc lập. Tôi vẫn cảm thấy khó có được cảm giác về việc một PCA ban đầu trên toàn bộ tập dữ liệu sẽ làm sai lệch kết quả mà không nhìn thấy các nhãn lớp.
Bitwise

@Bitwise: vui lòng xem chỉnh sửa của tôi
cbeleites hỗ trợ Monica

Xin chào @cbeleites, tôi muốn biến chủ đề này thành một chủ đề "chính tắc" cho các câu hỏi về PCA và phân tách thử nghiệm / đào tạo (có rất nhiều!) Và đánh dấu chúng là trùng lặp. Tôi lấy tự do để thêm một câu vào câu trả lời của bạn có thể làm sáng tỏ một sự hiểu lầm thường xuất hiện trong các câu hỏi trùng lặp. Hy vọng bạn hài lòng với chỉnh sửa của tôi, nhưng xin vui lòng kiểm tra! +1, btw.
amip nói phục hồi Monica

@amoeba, cảm ơn bạn rất nhiều. Vâng, đó là một điểm quan trọng bạn đã thêm. Bất kỳ lời cảm ơn cho công việc bạn đưa vào để làm sạch bộ sưu tập các câu hỏi.
cbeleites hỗ trợ Monica

1
@FelipeAlmeida: có
cbeleites hỗ trợ Monica

2

Câu trả lời cho câu hỏi này phụ thuộc vào thiết kế thử nghiệm của bạn. PCA có thể được thực hiện trên toàn bộ tập dữ liệu miễn là bạn không cần phải xây dựng mô hình của mình trước khi biết dữ liệu bạn đang cố gắng dự đoán. Nếu bạn có một tập dữ liệu nơi bạn có một loạt các mẫu được biết và một số mẫu chưa biết và bạn muốn dự đoán những điều chưa biết, bao gồm cả những điều chưa biết trong PCA sẽ giúp bạn có cái nhìn phong phú hơn về đa dạng dữ liệu và có thể giúp cải thiện hiệu suất của mô hình. Vì PCA không được giám sát, nên nó không "đạt đỉnh" bởi vì bạn có thể làm điều tương tự với các mẫu chưa biết như bạn có thể biết.

Mặt khác, nếu bạn có một bộ dữ liệu để xây dựng mô hình ngay bây giờ và tại một thời điểm nào đó trong tương lai bạn sẽ nhận được các mẫu mới mà bạn phải dự đoán bằng mô hình dựng sẵn đó, bạn phải thực hiện PCA riêng biệt trong mỗi lần gấp để chắc chắn nó sẽ khái quát. Vì trong trường hợp này, chúng tôi sẽ không biết các tính năng mới trông như thế nào và chúng tôi không thể xây dựng lại mô hình để giải thích cho các tính năng mới, làm PCA trên dữ liệu thử nghiệm sẽ là "đỉnh điểm". Trong trường hợp này, cả các tính năng và kết quả cho các mẫu chưa biết đều không có sẵn khi mô hình sẽ được sử dụng trong thực tế, vì vậy chúng không nên có sẵn khi đào tạo mô hình.


0

Làm sau, PCA về đào tạo được thiết lập mỗi lần

Trong PCA, chúng tôi tìm hiểu ma trận rút gọn: U giúp chúng tôi có được phép chiếuZ_train = U x X_train

Tại thời điểm thử nghiệm, chúng tôi sử dụng cùng một chữ U đã học từ giai đoạn đào tạo và sau đó tính toán hình chiếuZ_test = U x X_test

Vì vậy, về cơ bản, chúng tôi đang chiếu thử nghiệm vào không gian tính năng thu được trong quá trình đào tạo.

Giả định cơ bản, là tập kiểm tra và đào tạo phải đến từ cùng một phân phối, điều này giải thích phương pháp trên.

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.