Khi nào nên sử dụng Rừng ngẫu nhiên trên SVM và ngược lại?


28

Khi nào một người sẽ sử dụng Random Foresthơn SVMvà ngược lại?

Tôi hiểu điều đó cross-validationvà so sánh mô hình là một khía cạnh quan trọng của việc chọn một mô hình, nhưng ở đây tôi muốn tìm hiểu thêm về quy tắc ngón tay cái và phương pháp phỏng đoán của hai phương pháp.

Ai đó có thể vui lòng giải thích sự tinh tế, điểm mạnh và điểm yếu của các phân loại cũng như các vấn đề, phù hợp nhất với từng vấn đề không?


1
Điểm chính xác là thước đo thực sự duy nhất về hiệu suất tương đối của chúng, mặc dù có thể có nghệ thuật trước đó cho biết loại phân loại nào trong số nhiều loại có sẵn có thể tốt hơn trên loại dữ liệu của bạn nếu bạn may mắn. Bạn có thể bị hạn chế hơn bởi phải mất bao lâu để điều chỉnh các tham số của mình, trong trường hợp đó, Rừng ngẫu nhiên có thể sẽ chứng minh một đề xuất dễ dàng hơn của cả hai.
image_doctor

Câu trả lời:


29

Tôi muốn nói, sự lựa chọn phụ thuộc rất nhiều vào dữ liệu bạn có và mục đích của bạn là gì. Một vài "quy tắc của ngón tay cái".

Random Forest về bản chất phù hợp với các vấn đề đa lớp, trong khi SVM thực chất là hai lớp. Đối với bài toán đa lớp, bạn sẽ cần giảm nó thành nhiều bài toán phân loại nhị phân.

Random Forest hoạt động tốt với hỗn hợp các tính năng số và phân loại. Khi các tính năng là trên quy mô khác nhau, nó cũng tốt. Nói một cách đơn giản, với Random Forest, bạn có thể sử dụng dữ liệu như hiện tại. SVM tối đa hóa "lề" và do đó dựa vào khái niệm "khoảng cách" giữa các điểm khác nhau. Tùy bạn quyết định xem "khoảng cách" có ý nghĩa hay không. Kết quả là, mã hóa một nóng cho các tính năng phân loại là việc cần làm. Hơn nữa, min-max hoặc tỷ lệ khác rất được khuyến khích ở bước tiền xử lý.

Nếu bạn có dữ liệu với điểm và tính năng, một bước trung gian trong SVM sẽ xây dựng ma trận (nghĩ về yêu cầu bộ nhớ để lưu trữ) bằng cách tính chấm sản phẩm (độ phức tạp tính toán). Do đó, theo nguyên tắc thông thường, SVM khó có thể mở rộng vượt quá 10 ^ 5 điểm. Số lượng lớn các tính năng (các tính năng đồng nhất với khoảng cách có ý nghĩa, pixel của hình ảnh sẽ là một ví dụ hoàn hảo) nói chung không phải là vấn đề.nmn×nn2

Đối với một vấn đề phân loại Rừng ngẫu nhiên cung cấp cho bạn xác suất thuộc về lớp. SVM cung cấp cho bạn khoảng cách đến ranh giới, bạn vẫn cần chuyển đổi nó thành xác suất bằng cách nào đó nếu bạn cần xác suất.

Đối với những vấn đề này, nơi áp dụng SVM, nó thường hoạt động tốt hơn Rừng ngẫu nhiên.

SVM cung cấp cho bạn "vectơ hỗ trợ", đó là các điểm trong mỗi lớp gần nhất với ranh giới giữa các lớp. Họ có thể được quan tâm bởi chính họ để giải thích.


Chỉ cần thêm: không đơn giản để Rừng ngẫu nhiên cung cấp cho bạn xác suất. Bạn cần thực hiện xác suất của cây quyết định hoặc hiệu chỉnh mô hình Rừng ngẫu nhiên được trang bị của bạn sau đó nếu bạn muốn xác suất 'đúng'.
Archie

5

Các mô hình SVM thực hiện tốt hơn trên dữ liệu thưa thớt hơn so với cây nói chung. Ví dụ: trong phân loại tài liệu, bạn có thể có hàng ngàn, thậm chí hàng chục nghìn tính năng và trong bất kỳ vectơ tài liệu cụ thể nào, chỉ một phần nhỏ các tính năng này có thể có giá trị lớn hơn 0. Có lẽ có sự khác biệt khác giữa chúng, nhưng đây là những gì tôi tìm thấy cho các vấn đề của mình.


3

Nó thực sự phụ thuộc vào những gì bạn muốn đạt được, dữ liệu của bạn trông như thế nào và vv. SVM thường sẽ hoạt động tốt hơn trên các phụ thuộc tuyến tính, nếu không bạn cần kernel phi tuyến và lựa chọn kernel có thể thay đổi kết quả. Ngoài ra, SVM ít được giải thích hơn - ví dụ: nếu bạn muốn giải thích lý do tại sao phân loại giống như vậy - nó sẽ không tầm thường. Cây quyết định có khả năng diễn giải tốt hơn, chúng hoạt động nhanh hơn và nếu bạn có các biến phân loại / số thì tốt, hơn nữa: các phụ thuộc phi tuyến tính được xử lý tốt (cho N đủ lớn). Ngoài ra, họ đào tạo nhanh hơn SVM nói chung, nhưng họ có xu hướng phù hợp hơn ...

Tôi cũng sẽ thử Logistic Regression - phân loại có thể diễn giải tuyệt vời)

Tóm lại - quy tắc của ngón tay cái là thử bất cứ điều gì và so sánh những gì mang lại cho bạn kết quả / giải thích tốt nhất.


1

Để bổ sung cho những điểm tốt đã nêu:

Từ chúng ta có cần hàng trăm phân loại để giải quyết các vấn đề phân loại thế giới thực không? rừng ngẫu nhiên có nhiều khả năng đạt được hiệu suất tốt hơn rừng ngẫu nhiên.

Ngoài ra, cách các thuật toán được thực hiện (và vì lý do lý thuyết) các khu rừng ngẫu nhiên thường nhanh hơn nhiều so với các SVM (phi tuyến tính). Thật vậy, như @Ianenok, các SVM có xu hướng không sử dụng được ngoài 10 000 điểm dữ liệu.

Tuy nhiên, các SVM được biết là hoạt động tốt hơn trên một số bộ dữ liệu cụ thể (hình ảnh, dữ liệu microarray ...).

Vì vậy, một lần nữa, xác nhận chéo thực sự là cách tốt nhất để biết phương pháp nào thực hiện tốt nhất.

Nguồn: Rừng ngẫu nhiên vs SVM


ừm "rừng ngẫu nhiên có nhiều khả năng đạt được hiệu suất tốt hơn rừng ngẫu nhiên."
Sanjay Manohar
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.