PCA và rừng ngẫu nhiên


12

Đối với một cuộc thi Kaggle gần đây, tôi (thủ công) đã xác định 10 tính năng bổ sung cho tập huấn luyện của mình, sau đó sẽ được sử dụng để huấn luyện một trình phân loại rừng ngẫu nhiên. Tôi quyết định chạy PCA trên bộ dữ liệu với các tính năng mới, để xem chúng so sánh với nhau như thế nào. Tôi thấy rằng ~ 98% phương sai được thực hiện bởi thành phần đầu tiên (hàm riêng đầu tiên). Sau đó, tôi đã đào tạo trình phân loại nhiều lần, thêm một tính năng cùng một lúc và sử dụng xác thực chéo và lỗi RMS để so sánh chất lượng của phân loại. Tôi thấy rằng các phân loại được cải thiện với mỗi tính năng bổ sung và kết quả cuối cùng (với tất cả 10 tính năng mới) tốt hơn nhiều so với lần chạy đầu tiên với (tính năng) 2 tính năng.

  • Cho rằng PCA tuyên bố ~ 98% phương sai là trong thành phần đầu tiên của bộ dữ liệu của tôi, tại sao chất lượng phân loại lại cải thiện nhiều như vậy?

  • Điều này sẽ đúng với các phân loại khác? RF chia tỷ lệ trên nhiều lõi, do đó, việc đào tạo nhanh hơn nhiều so với (nói) SVM.

  • Điều gì xảy ra nếu tôi đã chuyển đổi tập dữ liệu vào không gian "PCA" và chạy trình phân loại trên không gian được chuyển đổi. Kết quả của tôi sẽ thay đổi như thế nào?


2
Bạn đã bình thường hóa dữ liệu của mình trước khi chạy PCA? Nếu tôi phải đoán tôi sẽ nghĩ rằng một trong những tính năng của bạn có quy mô lớn hơn nhiều so với các tính năng khác ...
Marc Shivers

1
Hàm PCA tự động bình thường hóa mọi thứ khi thực hiện tính toán.
Vishal

1
Có thể đó chỉ là tôi, nhưng bạn có thể làm rõ những điều sau: bước đầu tiên của bạn bao gồm thêm 10 tính năng (thô), từng tính năng hoặc bạn đã làm việc trực tiếp với các thành phần PCA? Như đã nêu, tôi hiểu đây là trường hợp đầu tiên và bạn tự hỏi liệu bạn có thể làm việc trực tiếp với kết quả từ PCA hay không. Trong cả hai trường hợp, bạn đã áp dụng PCA cho tất cả các biến, bao gồm các tính năng mới hay chỉ sau này?
chl

Tôi đã áp dụng PCA cho ma trận gốc với 10 tính năng bổ sung. Sau đó, tôi đã đào tạo trình phân loại, bằng cách thêm vào một tính năng tại một thời điểm, vì vậy tôi có thể đo lường sự cải thiện gia tăng được cung cấp cùng với việc bổ sung từng tính năng. Câu hỏi của tôi là nếu tôi chuyển đổi tập dữ liệu (với 10 tính năng mới) sang không gian PCA, và sau đó chạy trình phân loại trực tiếp trên tập dữ liệu trong không gian PCA
Vishal

Câu trả lời:


7

Khi thực hiện mô hình dự đoán, bạn đang cố gắng giải thích sự thay đổi trong phản hồi, chứ không phải là sự thay đổi trong các tính năng. Không có lý do gì để tin rằng việc nhồi nhét càng nhiều biến thể tính năng vào một tính năng mới sẽ thu được một lượng lớn sức mạnh dự đoán của các tính năng nói chung.

Điều này thường được giải thích là sự khác biệt giữa hồi quy thành phần chính thay vì bình phương tối thiểu một phần.


"Không có lý do gì để tin rằng việc nhồi nhét nhiều biến thể tính năng vào một tính năng mới sẽ thu được một lượng lớn sức mạnh dự đoán của các tính năng nói chung." Đó không bao giờ là vấn đề, và làm điều này sẽ dẫn đến một phân loại rất bối rối! Mục tiêu là có một loạt các tính năng, tất cả đều minh họa các khía cạnh khác nhau của bộ dữ liệu, với mục đích giảm lỗi tổng quát hóa. Quan điểm của PCA là xem các tính năng khác nhau như thế nào. Và quan điểm của tôi khi đăng bài là các tính năng của tôi không khác nhau, nhưng kết quả của RF vẫn được cải thiện.
Vishal

1
Logic tương tự vẫn có thể áp dụng. Một tính năng mới có tính phổ biến cao với tính năng trước đó vẫn có thể mang lại sức mạnh dự đoán nhiều hơn. Cụ thể cho một RandomForest: nếu tính năng gần trùng lặp nói chung là quan trọng, thì phiên bản này hay phiên bản khác hiện có nhiều khả năng được chọn làm ứng cử viên tách.
Shea Parkes

Điều này đặt ra câu hỏi tiếp theo, làm thế nào để bạn chọn các tính năng cho trình phân loại rừng ngẫu nhiên để cải thiện phân loại mà không thực sự chạy trình phân loại? Có một quy trình sàng lọc? Bạn làm nó như thế nào? :)
Vishal

Tôi không biết bất kỳ phương pháp lựa chọn a-prori hữu ích. Bạn có thể thực hiện nhiều vòng lặp quan trọng lồng nhau và lựa chọn thông qua một số gói R như thế nào Boruta. Tôi cũng không thấy chúng hữu ích. Tôi thấy không hợp lý khi tin rằng bất kỳ tính năng nhất định không có hiệu lực. Tôi có thể tin rằng việc nhấn mạnh một số tính năng nhất định so với các tính năng khác có thể hữu ích, nhưng thuật toán RandomForest cơ bản đã làm điều này khá tốt. Nếu bạn chuyên sâu về mô hình hóa và muốn có hiệu suất cao hơn, tôi khuyên bạn nên xếp các thuật toán khác, một số như một số cây được tăng cường, với RandomForest của bạn.
Shea Parkes

1
Bạn có thể tính toán một số biện pháp phân tách cho các lớp học dựa trên các tính năng của bạn (khoảng cách Jeffries-Matusita, Phân kỳ, v.v.). Điều này có thể giúp bạn tìm ra nói chung các tính năng giúp bạn phân biệt giữa các lớp nhưng do hoạt động của RF, không dễ để chọn từ đây, các tính năng cung cấp tập hợp tốt nhất để phân loại. Một trở ngại rõ ràng ở đây là RF tự tìm thấy các tương tác khác nhau.
JEquihua

6

Thành phần chính đầu tiên là sự kết hợp tuyến tính của tất cả các tính năng của bạn. Thực tế là nó giải thích gần như tất cả các biến thiên chỉ có nghĩa là hầu hết các hệ số của các biến trong thành phần chính đầu tiên đều có ý nghĩa.

Bây giờ các cây phân loại bạn tạo ra là một chút của một động vật khác nhau quá. Họ thực hiện phân tách nhị phân trên các biến liên tục để phân tách tốt nhất các danh mục bạn muốn phân loại. Điều đó không hoàn toàn giống như việc tìm các tổ hợp tuyến tính trực giao của các biến liên tục đưa ra hướng của phương sai lớn nhất. Trong thực tế, gần đây chúng tôi đã thảo luận một bài báo về CV trong đó PCA được sử dụng để phân tích cụm và tác giả nhận thấy rằng có những tình huống phân tách tốt nhất được tìm thấy không phải trong một vài thành phần chính đầu tiên mà là trong những thành phần cuối cùng.


3
"Trên thực tế, gần đây chúng tôi đã thảo luận về một bài báo về CV trong đó PCA" bạn có liên kết đến vấn đề này không? Tôi rất quan tâm :)
user603

Tôi sẽ tìm kiếm các cuộc thảo luận.
Michael R. Chernick

Bạn sẽ thật tử tế khi xem câu hỏi liên quan chứ?
nadya
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.