Hạt nhân SVM nào được sử dụng cho một vấn đề phân loại nhị phân?


9

Tôi là người mới bắt đầu khi hỗ trợ máy vectơ. Có một số hướng dẫn cho biết hạt nhân nào (ví dụ tuyến tính, đa thức) phù hợp nhất cho một vấn đề cụ thể không? Trong trường hợp của tôi, tôi phải phân loại các trang web theo liệu chúng có chứa một số thông tin cụ thể hay không, tức là tôi có vấn đề phân loại nhị phân.

Bạn có thể nói chung loại kernel nào phù hợp nhất cho nhiệm vụ này không? Hoặc tôi phải thử một vài trong số chúng trên tập dữ liệu cụ thể của mình để tìm ra cái tốt nhất? Nhân tiện, tôi đang sử dụng thư viện Python scikit-learn sử dụng thư viện libSVM.


bạn đại diện cho các trang web của bạn như thế nào? túi từ? Sự lựa chọn hạt nhân phụ thuộc vào số đo tương tự bạn muốn trong không gian đầu vào của bạn.
Ghi nhớ

@Memming Có, tôi đang sử dụng một đại diện từ ngữ. Bạn có ý nghĩa chính xác bằng thước đo tương tự là gì? Tôi đang điều tra xem một trang web có chứa một số loại thông tin cụ thể hay không.
pemistahl

Bạn có thể thấy hướng dẫn này hữu ích nếu bạn chưa kiểm tra nó ( csie.ntu.edu.tw/~cjlin/ con / guide / guide.pdf ). Libsvm có sơ đồ xác thực chéo k-tích hợp để lựa chọn giữa các mô hình và các tham số mô hình.
Zoran

@PeterStahl Ngoài ra, nó phụ thuộc vào loại ranh giới lớp bạn mong đợi. Tôi không có kinh nghiệm với không gian từ ngữ, vì vậy tôi không thể giúp bạn nhiều.
Ghi nhớ

Câu trả lời:


10

Bạn đã thực sự đánh vào một cái gì đó của một câu hỏi mở trong tài liệu. Như bạn nói, có nhiều loại hạt nhân (ví dụ: hàm tuyến tính, cơ sở xuyên tâm, sigmoid, đa thức) và sẽ thực hiện nhiệm vụ phân loại của bạn trong một không gian được xác định bởi các phương trình tương ứng của chúng. Theo hiểu biết của tôi, không ai đã chỉ ra một cách dứt khoát rằng một hạt nhân luôn hoạt động tốt nhất trên một loại nhiệm vụ phân loại văn bản so với loại khác.

Một điều cần xem xét là mỗi hàm kernel có 1 hoặc nhiều tham số cần được tối ưu hóa cho tập dữ liệu của bạn, điều đó có nghĩa là, nếu bạn đang thực hiện đúng cách, bạn nên có một bộ sưu tập đào tạo thứ hai mà bạn có thể điều tra các giá trị tốt nhất cho các tham số này. (Tôi nói là một bộ sưu tập giữ thứ hai, bởi vì bạn đã có một bộ sưu tập mà bạn đang sử dụng để tìm ra các tính năng đầu vào tốt nhất cho trình phân loại của bạn.) Tôi đã thực hiện một thử nghiệm một lúc trong đó tôi đã tối ưu hóa quy mô lớn cho từng các tham số này cho một nhiệm vụ phân loại văn bản đơn giản và thấy rằng mỗi hạt nhân dường như hoạt động tốt, nhưng đã làm như vậy ở các cấu hình khác nhau. Nếu tôi nhớ chính xác kết quả của mình, sigmoid đã hoạt động tốt nhất, nhưng đã làm như vậy ở các điều chỉnh tham số rất cụ thể - những điều khiến tôi mất hơn một tháng để tìm máy.


Cảm ơn bạn rất nhiều vì những suy nghĩ của bạn. Xin lỗi vì phản ứng muộn của tôi. Tôi đang viết luận văn thạc sĩ của mình tại thời điểm mà tôi cần đánh giá kết quả cho một số phân loại, không chỉ SVM. Thật không may, tôi không có thời gian để kiểm tra nhiều kết hợp tham số. Đó là lý do tại sao tôi có thể sẽ dính vào hạt nhân tuyến tính.
pemistahl

Chúc may mắn! Tôi nghĩ đó là một cuộc gọi tốt.
Kyle.

7

Hãy thử hạt nhân Gaussian.

Hạt nhân Gaussian thường được thử đầu tiên và hóa ra là hạt nhân tốt nhất trong nhiều ứng dụng (cũng có tính năng túi từ của bạn). Bạn cũng nên thử kernel tuyến tính. Đừng hy vọng nó sẽ cho kết quả tốt, các vấn đề phân loại văn bản có xu hướng không tuyến tính. Nhưng nó mang lại cho bạn cảm giác về dữ liệu của bạn và bạn có thể hài lòng về mức độ phi tuyến tính cải thiện kết quả của bạn.

Hãy chắc chắn rằng bạn xác thực chéo xác thực độ rộng kernel của mình và suy nghĩ về cách bạn muốn bình thường hóa các tính năng của mình (tf-idf, v.v.).

Tôi muốn nói rằng bạn có thể cải thiện kết quả của mình với tính năng chuẩn hóa tính năng tốt hơn nhiều so với việc chọn một hạt nhân khác (không phải là Gaussian).

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.