2012-03-18 25 views
9

Hi Tôi đang thực hiện phân loại SVM sử dụng SMO, trong đó hạt nhân của tôi là RBF, bây giờ tôi muốn chọn csigma giá trị, sử dụng tìm kiếm lưới và kiểm chứng chéo, tôi mới tới kernel chức năng, xin vui lòng giúp đỡ, trong từng bước quá trìnhchọn c và giá trị gamma

Trả lời

16
  1. Chọn một số giá trị cho C và sigma mà bạn nghĩ là thú vị. Ví dụ: C = {1, 10, 100, 1000} và sigma = {.01, .1, 1} (tôi chỉ đang tạo những thứ này).
  2. Chia tập huấn thành k (ví dụ: 10) phần, tốt nhất là theo cách stratified.
  3. Lặp qua tất cả các cặp giá trị C và sigma.
    1. Vòng lặp qua tất cả k các bộ phận đào tạo của bạn. Giữ phần k '. Đào tạo một bộ phân loại trên tất cả các phần khác được kết hợp, sau đó kiểm tra trên phần được giữ.
    2. Theo dõi một số điểm (độ chính xác, F1 hoặc bất kỳ thứ gì bạn muốn tối ưu hóa).
  4. Trả lại cặp giá trị hoạt động tốt nhất cho C, sigma theo điểm bạn vừa tính.
+0

Để làm rõ: "Đào tạo phân loại trên từng bộ phận khác" có nghĩa là đào tạo nó trên các bộ phận khác kết hợp, không phải từng phần riêng lẻ. – Dougal

+0

@Dougal: vâng, đó là ý tôi. Cảm ơn. –

+0

Tôi nghĩ rằng đáng chú ý là những gì bạn đang đề cập đến (chia thành phần k, vv) được gọi là Cross-Validation, đặc biệt là xác nhận chéo 10 lần. OP có thể không biết rằng, đôi khi phần khó nhất của cố gắng tìm thêm thông tin là biết từ khóa nào cần tìm kiếm. – karenu

4

Đọc Hướng dẫn thực hành để hỗ trợ Vector cổ điển của Chih-Wei Hsu, Chih-Chung Chang và Chih-Jen. Họ giải quyết vấn đề chính xác này và giải thích các phương pháp để thực hiện tìm kiếm lưới để lựa chọn tham số. http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

1

Tôi sẽ chỉ thêm một chút giải thích cho larsmans' answer.

Thông số C là thông số/thông số slack. Giá trị nhỏ hơn của nó buộc trọng lượng phải nhỏ. Càng lớn hơn, phạm vi cho phép của trọng lượng sẽ rộng hơn. Kết quả là, lớn hơn C giá trị tăng hình phạt cho phân loại sai và do đó làm giảm tỷ lệ lỗi phân loại trên dữ liệu đào tạo (có thể dẫn đến quá phù hợp). Thời gian đào tạo và số lượng vectơ hỗ trợ của bạn sẽ tăng khi bạn tăng giá trị C.

Bạn cũng có thể thấy hữu ích khi đọc Extending SVM to a Soft Margin Classifier bởi K.K. Cái cằm.

0

Bạn cũng có thể sử dụng lựa chọn Kiểu thiết kế đồng nhất làm giảm số lượng bộ dữ liệu bạn cần kiểm tra. Bài báo giải thích rằng đó là "Lựa chọn mô hình cho máy vectơ hỗ trợ thông qua thiết kế đồng bộ" của Chien-Ming Huang Một số thực hiện trong python đang tồn tại trong ssvm 0.2

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