(require-extension format) (require-extension libsvm) (require-extension srfi-42) ;; read in a sample dataset in svm-light format (define problem (read-problem "australian_scale.txt")) (format #t "Problem has ~d instances~&" (problem-num-instances problem)) ;; create a model from dataset - uses default parameters (define svm-model (svm-train problem (make-svm-parameter))) ;; display instances with actual and predicted class (define *correct* (sum-ec (: i (problem-num-instances problem)) (begin (let ((actual (problem-get-label problem i)) (predicted (svm-predict svm-model (problem-get-instance problem i)))) (format #t "Instance ~d: values ~a, class ~2d, predicted ~f ~a~&" (+ 1 i) (problem-get-instance-values (problem-get-instance problem i)) actual predicted (if (= actual predicted) "Y" "")) ;; return a '1' for each correct prediction (if (= actual predicted) 1 0))))) ;; display summary of performance (format #t "Proportion correct: ~4,1f%~&" (/ (* 100 *correct*) (problem-num-instances problem)))