Tôi muốn thêm hai xu của mình vào đây vì tôi nghĩ các câu trả lời hiện tại không đầy đủ.
Việc thực hiện PCA có thể đặc biệt hữu ích trước khi huấn luyện một khu rừng ngẫu nhiên (hoặc LightGBM hoặc bất kỳ phương pháp dựa trên cây quyết định nào khác) vì một lý do cụ thể mà tôi đã minh họa trong hình dưới đây.
Về cơ bản, nó có thể làm cho quá trình tìm ranh giới quyết định hoàn hảo dễ dàng hơn nhiều bằng cách sắp xếp tập huấn luyện của bạn dọc theo các hướng có phương sai cao nhất.
Cây quyết định rất nhạy cảm với việc xoay dữ liệu, vì ranh giới quyết định mà chúng tạo ra luôn luôn là dọc / ngang (nghĩa là vuông góc với một trong các trục). Do đó, nếu dữ liệu của bạn trông giống như pic bên trái, sẽ cần một cây lớn hơn nhiều để tách hai cụm này (trong trường hợp này là cây 8 lớp). Nhưng nếu bạn căn chỉnh dữ liệu của mình dọc theo các thành phần chính của nó (như trong hình bên phải), bạn có thể đạt được sự phân tách hoàn hảo chỉ với một lớp!
Tất nhiên, không phải tất cả các bộ dữ liệu đều được phân phối như thế này, vì vậy PCA có thể không phải lúc nào cũng có ích, nhưng vẫn rất hữu ích để thử và xem nếu có. Và chỉ là một lời nhắc, đừng quên bình thường hóa tập dữ liệu của bạn theo phương sai đơn vị trước khi thực hiện PCA!
Tái bút: Về việc giảm kích thước, tôi sẽ đồng ý với những người còn lại ở chỗ nó thường không phải là vấn đề lớn đối với các khu rừng ngẫu nhiên như đối với các thuật toán khác. Tuy nhiên, nó có thể giúp tăng tốc độ đào tạo của bạn một chút. Thời gian đào tạo cây quyết định là O (n m log (m)), trong đó n là số lượng phiên bản đào tạo, m - số thứ nguyên. Và mặc dù các khu rừng ngẫu nhiên chọn ngẫu nhiên một tập hợp kích thước cho mỗi cây được đào tạo, phần thấp hơn trong tổng số kích thước bạn chọn, bạn càng cần đào tạo nhiều cây hơn để đạt được hiệu suất tốt.
mtry
tham số) để xây dựng mỗi cây. Ngoài ra còn có một kỹ thuật loại bỏ tính năng đệ quy được xây dựng dựa trên thuật toán RF (xem gói varSelRF R và các tài liệu tham khảo trong đó). Tuy nhiên, chắc chắn có thể thêm một sơ đồ giảm dữ liệu ban đầu, mặc dù nó phải là một phần của quá trình xác thực chéo. Vì vậy, câu hỏi là: bạn có muốn nhập kết hợp tuyến tính các tính năng của mình vào RF không?