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.