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 c và sigma 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
- 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).
- Chia tập huấn thành k (ví dụ: 10) phần, tốt nhất là theo cách stratified.
- Lặp qua tất cả các cặp giá trị C và sigma.
- 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ữ.
- 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).
- 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.
Đọ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
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.
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
- 1. công thức hiệu chỉnh gamma:.^(Gamma) hoặc.^(1/gamma)?
- 2. Chống răng cưa và bù trừ gamma
- 3. Tham số Alpha và Gamma trong QLearning
- 4. xmlstarlet chọn giá trị
- 5. MySQL INSERT INTO ... GIÁ TRỊ VÀ CHỌN
- 6. Listing chọn giá trị tùy chọn với Selenium và Python
- 7. Rails chọn thẻ chọn giá trị
- 8. Nhận lưới giá trị giá trị cột hàng đã chọn
- 9. MySQL Chọn: WHERE (giờ bây giờ) = GIỮA giá trị bảng và giá trị bảng
- 10. JQuery - Nhận giá trị chọn
- 11. Backbone html chọn giá trị
- 12. chọn từ các giá trị trong mysql
- 13. Nhận giá trị và văn bản CHỌN trong jQuery
- 14. MySQL chọn và tính giá trị từ nhiều cột
- 15. Chọn giá trị cha và con của XML cùng nhau
- 16. Tham số tùy chọn Giá trị Bảng
- 17. jquery mobile - đặt giá trị tùy chọn/chọn
- 18. C# System.Linq.Lookup Class Loại bỏ và Thêm giá trị
- 19. Tùy chọn tìm kiếm jQuery trong Chọn với giá trị rỗng/null loại bỏ nó và chọn tùy chọn đầu tiên sau giá trị
- 20. jQuery được chọn: cách chọn 1 giá trị tùy chọn và xóa cùng một giá trị trong một menu chọn khác?
- 21. MySQL chọn dựa trên giá trị ENUM
- 22. chức năng gamma không đầy đủ trong python?
- 23. SQL cột Lựa chọn như giá trị
- 24. Chọn nhiều giá trị tối đa
- 25. C#: Định dạng chuỗi giá trị giá
- 26. Tự động thay đổi giá trị chọn
- 27. Chọn giá trị trên combobox với jquery
- 28. jquery clone chọn không giữ giá trị
- 29. Lấy Giá trị đã Chọn từ JXTreeTable
- 30. MySQL chọn giá trị gần nhất
Để 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
@Dougal: vâng, đó là ý tôi. Cảm ơn. –
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