Các trường hợp sử dụng RBF SVM (so với hồi quy logistic và rừng ngẫu nhiên)


10

Support Vector Machines với kernel hàm radial-base là một bộ phân loại có giám sát mục đích chung.

Mặc dù tôi biết nền tảng lý thuyết cho các SVM này và điểm mạnh của chúng, tôi không biết các trường hợp trong đó chúng là phương pháp ưa thích. Vì vậy, có một loại vấn đề nào mà RBF SVM vượt trội hơn các kỹ thuật ML khác không? (Hoặc về điểm số, hoặc khác - như sự mạnh mẽ, dễ dàng bắt đầu, khả năng diễn giải, v.v.)

Tôi đang hỏi, vì cách tiếp cận mặc định của tôi tập trung vào hồi quy logistic (có lẽ với một số tương tác), rừng ngẫu nhiên và một chút mạng lưới thần kinh. Không ai trong số bạn bè của tôi làm ML (một số người chiến thắng Kaggle) là người dùng SVM (nhưng nó có thể là một tạo tác của cộng đồng của tôi hoặc các vấn đề họ giải quyết).

Câu trả lời:


8

Tôi sẽ cố gắng trả lời câu hỏi này với sự kết hợp của các bằng chứng được công bố, kinh nghiệm cá nhân và suy đoán.

A) Công bố bằng chứng.

Bài báo duy nhất tôi biết giúp trả lời câu hỏi là Delgado et al 2014 - 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? - JMLR chạy hàng trăm thuật toán và triển khai khác nhau trên 121 bộ dữ liệu cho đến UCI. Họ thấy rằng mặc dù RBF SVM không phải là thuật toán "tốt nhất" (đó là rừng ngẫu nhiên nếu tôi nhớ chính xác), nó nằm trong top 3 (hoặc 5).

Nếu bạn cho rằng lựa chọn bộ dữ liệu của họ là "mẫu tốt" cho các vấn đề trong thế giới thực, thì SVM chắc chắn là một thuật toán nên được thử trên các vấn đề mới nhưng trước tiên bạn nên thử rừng ngẫu nhiên!

Các giới hạn trong việc khái quát hóa kết quả đó là các bộ dữ liệu hầu như đều cao và gầy (n >> p), không thưa thớt - điều mà tôi suy đoán nên là vấn đề của RF và không lớn lắm (cả n và p).

Cuối cùng, vẫn còn trên các bằng chứng được công bố, tôi đề xuất hai trang web so sánh việc triển khai các khu rừng ngẫu nhiên khác nhau:

B) Kinh nghiệm cá nhân.

Tôi tin rằng các bài báo như Delgado et đều rất quan trọng đối với cộng đồng học máy, vì vậy tôi đã cố gắng sao chép kết quả của chúng trong một số điều kiện khác nhau. Tôi đã chạy khoảng 15 thuật toán khác nhau trên hơn 100 bộ dữ liệu nhị phân (từ bộ dữ liệu của Delgado). Tôi cũng nghĩ rằng tôi đã cẩn thận hơn trong việc lựa chọn siêu âm sau đó.

Kết quả của tôi là SVM là "thuật toán tốt nhất" (có nghĩa là thứ hạng 4,9). Tôi cho rằng SVM đã vượt qua RF vì bộ dữ liệu ban đầu chứa nhiều vấn đề đa kính - mà tôi sẽ thảo luận trong phần đầu cơ - nên là một vấn đề đối với SVM.

EDIT (ngày 16 tháng 6):

Nhưng RF là cách nhanh hơn và đó là thuật toán tốt thứ 2 (thứ hạng trung bình 5,6) theo sau là gbm (5,8), nnets (7.2), v.v.). Tôi đã không thử hồi quy logistic tiêu chuẩn trong các vấn đề này, nhưng tôi đã thử một mạng lưới đàn hồi (L1 và L2 thường xuyên LR) nhưng nó không hoạt động tốt (có nghĩa là thứ hạng 8.3) ~

Tôi chưa hoàn thành phân tích kết quả hoặc viết bài báo nên tôi thậm chí không thể chỉ ra một báo cáo kỹ thuật với kết quả. Hy vọng, trong một vài tuần tôi có thể chỉnh sửa lại câu trả lời này và chỉ ra một báo cáo kỹ thuật với kết quả.

Bài viết có sẵn tại http://arxiv.org/abs/1606.00930 Hóa ra sau khi phân tích đầy đủ RF và SVM gần như tương đương về tỷ lệ lỗi dự kiến ​​và SVM là nhanh nhất (thật ngạc nhiên !!). Tôi không còn nhấn mạnh vào việc giới thiệu RF (trên cơ sở tốc độ).

Vì vậy, kinh nghiệm cá nhân của tôi là mặc dù SVM có thể giúp bạn có thêm một chút độ chính xác, nhưng hầu như luôn luôn là một lựa chọn tốt hơn để sử dụng RF.

Ngoài ra, đối với các vấn đề lớn hơn, có thể không thể sử dụng bộ giải SVM hàng loạt (Tôi chưa bao giờ sử dụng bộ giải SVM trực tuyến như LASVM hoặc các bộ khác).

Cuối cùng tôi chỉ sử dụng hồi quy logistic trong một tình huống. Tôi đã thực hiện một số kỹ thuật tính năng "dữ dội" về một vấn đề phân loại hình ảnh (chẳng hạn như - kết hợp hoặc không kết hợp hai mô tả khác nhau của hình ảnh và tính chiều của các mô tả). Và tôi đã sử dụng hồi quy logistic để chọn trong số nhiều lựa chọn thay thế (vì không có tìm kiếm siêu tham số trong LR). Khi chúng tôi giải quyết các tính năng tốt nhất (theo LR), chúng tôi đã sử dụng RF (chọn siêu âm tốt nhất) để có được phân loại cuối cùng.

C) Đầu cơ

Tôi chưa bao giờ nghiêm túc làm việc với các vấn đề đa kính, nhưng cảm giác của tôi là SVM không tốt cho chúng. Vấn đề không phải là vấn đề giữa các giải pháp một đấu một hoặc một so với tất cả, mà là tất cả các triển khai mà tôi biết, sẽ sử dụng cùng một siêu âm cho tất cả các phân loại (OVO hoặc OVA). Việc chọn các siêu đường kính chính xác cho SVM rất tốn kém đến nỗi không có cách triển khai nào tôi biết sẽ thực hiện tìm kiếm cho mỗi phân loại. Tôi suy đoán rằng đây là một vấn đề đối với SVM (nhưng không phải là vấn đề đối với RF !!).

Sau đó, một lần nữa, đối với các vấn đề đa kính, tôi sẽ đi thẳng đến RF.


Một câu trả lời tuyệt vời! Bạn có bài đăng trên blog, sổ ghi chép hoặc tập lệnh nào trên bản sao của thí nghiệm Delgado et al không? (Tinh chỉnh các tham số, các biến tỷ lệ thường quan trọng như sự lựa chọn của một thuật toán, do đó, không khó để đưa ra tuyên bố mạnh mẽ về tính ưu việt của thuật toán.)
Piotr Migdal

@PiotrMigdal - không có bài đăng trên blog / notebook - vẫn đang viết bài. Tìm kiếm siêu tham số là: RBF C = gamma = , RF mtry = ntrees = 500 đến 3000 bằng 500. Tất cả các thuộc tính đã được chuẩn hóa (mean = 0, sd = 1). 25,20,25,210,215215,210.5,26,21.5,230.5,1,2p
Jacques Wainer

0

Tôi không có đủ đặc quyền để có thể viết bình luận, vì vậy tôi sẽ chỉ cung cấp đầu vào / quan sát của mình ở đây như một câu trả lời.

Theo kinh nghiệm của tôi, Bộ phân loại vectơ hỗ trợ (SVC) có xu hướng ngang bằng hoặc vượt trội so với các phương thức khác khi các lớp nhị phân được cân bằng. Đối với các lớp không cân bằng, SVC có xu hướng hoạt động kém.

Tôi không thường xuyên xử lý các vấn đề đa kính, nhưng tôi cũng đã thấy một số kết quả tốt với SVC cho các vấn đề đa kính.

Một điều khác mà tôi nhận thấy là lời nguyền của sự lờ mờ dường như không ảnh hưởng đến SVC nhiều như các kỹ thuật mô hình hóa khác. Nói cách khác, khi tôi thêm nhiều thuật ngữ trong mô hình, các kỹ thuật khác bắt đầu hoạt động kém trong bài kiểm tra (hoặc, giữ vững) so với tập huấn luyện. Nhưng không quá nhiều khi tôi sử dụng SVC. Vì lý do này, nếu phân tích mô hình không phải là ưu tiên của bạn, thì SVC có thể là một lựa chọn tốt hơn vì bạn có thể đưa ra rất nhiều thuật ngữ mà không cần quá nhiều sự phù hợp như các phương pháp khác.

Một trong những vấn đề tôi gặp phải với SVC là nó không hoàn toàn cung cấp một biện pháp (như xác suất dự đoán) để có thể xếp hạng thứ tự các quan sát. Bạn có thể sử dụng Platt Scaleing (được triển khai trong gói sklearn.svm trong Python), nhưng tôi đã thấy một số điểm không nhất quán. (Tôi có thể chia sẻ thông tin chi tiết nếu có ai quan tâm.)

Không chắc chắn nếu điều này thực sự trả lời câu hỏi của bạn, nhưng đây là những quan sát của tôi. Mong rằng sẽ giúp.


0

RF và (RBF) SVM có các lý thuyết khác nhau đằng sau chúng, nhưng giả sử bạn có đủ dữ liệu, chúng hoạt động tương tự nhau. Cả hai đều có thể học các hàm phức tạp và xử lý độc đáo với các biến và ngoại lệ ồn ào và không chính xác.

Nếu bạn đang cố gắng để có được kết quả tốt nhất cho một cái gì đó giống như một kaggle, bạn sẽ tập hợp nhiều mô hình bao gồm RF và SVM.

Trong cài đặt không kaggle, bạn có thể xem xét việc triển khai mô hình khó đến mức nào, đưa nó vào sản xuất, đưa ra dự đoán, giải thích, giải thích nó cho người quản lý, v.v.

SVM (RBF tuyến tính hoặc thường xuyên hóa cao) chắc chắn sẽ được ưu tiên nếu bạn có lượng dữ liệu nhỏ hoặc bạn đang xử lý một quá trình về chiều. Có một vài lý do cho nó, một lý do là tốt hơn là tìm siêu phẳng lề tối đa thay vì một loạt các phân chia tốt nhất trên các tính năng của bạn, thường không cần phải có ranh giới phức tạp vì trong không gian chiều cao sẽ có một siêu phẳng nào đó dù sao cũng có thể tách dữ liệu. Một vấn đề khác là RF khó điều chỉnh hơn (có nhiều tham số để điều chỉnh hơn), do đó bạn cần nhiều dữ liệu hơn.

Một suy nghĩ khác, xác nhận chéo có thể rất rẻ và nhanh chóng cho SVM, đặc biệt là LOOCV. Vì chỉ có một vài mẫu là vectơ hỗ trợ (không phải lúc nào cũng vậy), bạn không phải kiểm tra lại trình phân loại của mình trên mỗi lần, nhưng chỉ khi dữ liệu hiện có trong bộ kiểm tra là vectơ hỗ trợ trước đó. Điều này cũng có thể làm cho việc học trực tuyến dễ dàng hơn.

Ngoài ra, có thể rẻ hơn để lưu trữ các vectơ hỗ trợ so với cây đầy đủ.

Thường là tốt hơn để làm mô hình xác suất hơn phân loại. Vì vậy, làm cho mô hình đầu tiên và quyết định sau. Trong trường hợp đó hồi quy logistic sẽ được ưa thích. Và bạn vẫn có thể sử dụng hạt nhân và chính quy để làm cho nó hoạt động như bạn muốn. Ngoài ra, bạn sẽ không sử dụng RF để trả lời các câu hỏi như: điều chỉnh độ tuổi, lối sống, giới tính và giáo dục, uống rượu có làm tăng cơ hội nhuộm đau tim không?

Một số tài nguyên bổ sung tôi thấy thú vị: https://www.quora.com/What-are-the- nhược điểm-of-otherfer- classifying-alacticms http://videolectures.net/solomon_caruana_wslmw/

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.