2012-02-21 17 views

Trả lời

15

Biến "slack" là C trong c-svm và nu trong nu-SVM. Cả hai đều phục vụ cùng một chức năng trong các công thức tương ứng của chúng - kiểm soát sự cân bằng giữa một lề rộng và sai số phân loại. Trong trường hợp của C, người ta thường kiểm tra nó theo thứ tự độ lớn, nói 10^-4, 10^-3, 10^-2, ... đến 1, 5 hoặc hơn. nu là một số nằm trong khoảng từ 0 đến 1, thường từ 0,01 đến .8, điều khiển tỷ lệ các vectơ hỗ trợ cho các điểm dữ liệu. Khi nu là .1, lề nhỏ, số lượng vectơ hỗ trợ sẽ là một tỷ lệ phần trăm nhỏ về số lượng điểm dữ liệu. Khi nu là .8, lề là rất lớn và hầu hết các điểm sẽ rơi vào lề.

Những điều khác cần xem xét là lựa chọn hạt nhân của bạn (tuyến tính, RBF, sigmoid, đa thức) và các tham số cho hạt nhân đã chọn. Nói chung, người ta phải làm rất nhiều thử nghiệm để tìm ra sự kết hợp tốt nhất của các tham số. Tuy nhiên, hãy cẩn thận quá mức phù hợp với tập dữ liệu của bạn.

Burges đã viết một hướng dẫn tuyệt vời: A Tutorial on Support Vector Machines for Pattern Recognition

Nhưng nếu bạn chủ yếu chỉ muốn biết làm thế nào để sử dụng nó và ít về cách thức hoạt động, đọc "A Practical Guide to Support Vector Classication" by Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin (tác giả của libsvm)

1

Trước tiên, hãy quyết định sử dụng loại SVM nào: C-SVC, nu-SVC, epsilon-SVR hoặc nu-SVR. Theo tôi, bạn cần thay đổi C và gamma hầu hết thời gian ... phần còn lại thường được sửa.

+0

tôi đang sử dụng C-SVC – Hossein

+0

xem xét các tùy chọn được cung cấp trong liên kết trong câu hỏi của bạn ... cũng có một ví dụ ... ví dụ -s 0 -c 10 -t 1 -g 1 -r 1 -d 3 – lakesh

+0

bên cạnh đó, u shld cũng đọc thư mục README được cung cấp ... nó rất phức tạp và được viết tốt ... – lakesh

Các vấn đề liên quan