libsvm Nhận được số lần lặp tối đa cảnh báo và xác thực chéo


20

Tôi đang sử dụng libsvm trong chế độ C-SVC với hạt nhân đa thức bậc 2 và tôi bắt buộc phải đào tạo nhiều SVM. Mỗi bộ huấn luyện có 10 tính năng và 5000 vectơ. Trong quá trình đào tạo, tôi nhận được cảnh báo này cho hầu hết các SVM mà tôi đào tạo:

WARNING: reaching max number of iterations
optimization finished, #iter = 10000000

Ai đó có thể vui lòng giải thích những gì cảnh báo này ngụ ý và, có lẽ, làm thế nào để tránh nó?

Tôi cũng muốn áp dụng xác thực chéo cho các mô hình của mình để xác định các lựa chọn tốt nhất cho gamma và C (chính quy). Kế hoạch của tôi là chỉ thử mọi kết hợp của 10 giá trị này: 0,00001, 0,0001, 0,001, 0,01, 0,1, 1, 10, 100, 1000, 10000 cho cả hai tham số và xem kết hợp nào tạo ra độ chính xác tốt nhất trong quá trình xác thực chéo. Vừa đủ chưa? Tôi nên sử dụng nhiều giá trị hơn trong khoảng này hay tôi nên chọn khoảng rộng hơn?


Hãy thử chế độ NU_SVC nó sẽ giải quyết vấn đề của bạn.
Hosein Bitaraf

Câu trả lời:


20

Cảnh báo này có nghĩa là thói quen lặp được LIBSVM sử dụng để giải quyết vấn đề tối ưu hóa bậc hai để tìm siêu phẳng lề tối đa (nghĩa là các tham số b ) phân tách dữ liệu của bạn đạt đến số lần lặp tối đa và sẽ phải dừng lại, trong khi gần đúng hiện tại cho w có thể được tăng cường hơn nữa (nghĩa là, w có thể được thay đổi để làm cho giá trị của hàm mục tiêu cực hơn). Nói tóm lại, điều đó có nghĩa là LIBSVM nghĩ rằng nó không thể tìm thấy siêu phẳng lề tối đa, điều này có thể đúng hoặc không đúng.wbww

Có nhiều lý do tại sao điều này có thể xảy ra, tôi khuyên bạn nên làm như sau:

  • Bình thường hóa dữ liệu của bạn.
  • Hãy chắc chắn rằng các lớp của bạn được cân bằng nhiều hơn hoặc ít hơn (có kích thước tương tự). Nếu họ không, sử dụng tham số -w để gán cho họ các trọng số khác nhau.
  • Cγ
    γuv+coeff0 degree

CC

Lưu ý rằng bản phân phối LIBSVM cho Windows phải chứa tập lệnh Python có tên là Grid.py, có thể thực hiện lựa chọn tham số cho bạn (dựa trên xác thực chéo và phạm vi tìm kiếm được chỉ định). Nó cũng có thể tạo ra các đường đồng mức cho độ chính xác của SVM. Công cụ này có thể khá hữu ích.

Câu hỏi sau đây về StackOverflow và các câu hỏi liên quan của nó cũng có thể giúp ích: libsvm Thu nhỏ Heuristic


Cảm ơn vì lời giải thích chi tiết. Nó chắc chắn làm sáng tỏ bí ẩn. Tôi đã hỏi gần như cùng một câu hỏi về SO (liên kết mà bạn cung cấp), nhưng câu trả lời tôi nhận được chủ yếu tập trung vào các heuristic thu nhỏ.
Mihai Todor
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.