scoring_rules.rkt 537 B

123456789101112131415161718192021
  1. #lang typed/racket/base
  2. ; scoring_rules.rkt
  3. ;
  4. ; Compute scores for probabilistic predictions
  5. ; https://en.wikipedia.org/wiki/Scoring_rule#Proper_scoring_rules
  6. (provide brier-score
  7. log-score)
  8. ; compute Brier score
  9. ; f - forecast probability, [0, 1]
  10. ; o - actual outcome, 0 or 1
  11. (: brier-score (-> Number Number Number))
  12. (define (brier-score f o)
  13. (expt (- f o) 2))
  14. ; compute logarithmic score
  15. ; L(r,i) = ln(r_i)
  16. (: log-score (-> Number Number Number))
  17. (define (log-score f o)
  18. (+ (* o (log f)) (* (- 1 o) (log (- 1 f)))))