Hello
Mình sử dụng svm trong opencv để kiểm nghiệm thuật toán. Khi train model phải định nghĩa điều kiện dừng khi thuật toán học bị lặp bằng lớp TermCriteria. Ví dụ như sau
Ptr<SVM> svm = SVM::create();
svm->setType(SVM::C_SVC);
svm->setC(0.1);
svm->setKernel(SVM::LINEAR);
svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 1, 1e-6));
Trong dòng này svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 1, 1e-6));
TermCriteria::MAX_ITER
là kiểu điều kiện dừng, trường hợp này là đạt đến 1 số lần lặp = số mình truyền vào thì dừng
1
là số lần lặp tối đa cho phép
1e-6
độ chính xác của model khi đạt được sẽ không lặp nữa
Tài liệu đặc tả lớp TermCriteria ở đây
https://docs.opencv.org/3.4.1/d9/d5d/classcv_1_1TermCriteria.html
Ở điều kiện lặp đạt đến 1 số n truyền vào sẽ dừng thì mình hiểu, nhưng điều kiện model đạt đến 1 độ chính xác epsilon thì dừng thì mình k hiểu. Độ chính xác của model tính như thế nào, bàng công thức nào. Làm sao để kiểm soát giá trị epsilon này khi huấn luyện
Mình đã hiểu cách kiểm soát tham số C, nhưng vì nó còn liên quan đến điều kiện dừng epsilon và số lần lặp lại. Nên tóm lại với dữ liệu đầu vào mình vẫn chưa thể kiểm soát được các tham số của model để cho ra siêu phẳng tối ưu như ý muốn. Help me
Gồm có các tham số C, số lần lặp lại tối đa, độ chính xác mong muốn
Thankyou