Pārlūkot izejas kodu

Brier score and unit test

George C. Privon 6 gadi atpakaļ
vecāks
revīzija
88e68619e7
2 mainītis faili ar 32 papildinājumiem un 0 dzēšanām
  1. 16 0
      code/brier_score.rkt
  2. 16 0
      tests/brier_score-test.rkt

+ 16 - 0
code/brier_score.rkt

@@ -0,0 +1,16 @@
+#lang racket/base
+; brier_score.rkt
+;
+; Compute Brier score for probabilistic predictions
+; https://en.wikipedia.org/wiki/Brier_score
+
+(provide brier-score)
+
+(require math)
+
+; compute Brier score
+; f - forecast probability, [0, 1]
+; o - actual outcome, 0 or 1
+(define (brier-score f o)
+    (expt (- f o) 2))
+

+ 16 - 0
tests/brier_score-test.rkt

@@ -0,0 +1,16 @@
+#lang racket/base
+; brier_score_test.rkt
+; Unit tests for Brier score function
+
+(require rackunit
+         "../code/brier_score.rkt")
+
+; perfect prediction for event occurring
+(check-equal? (brier-score 1 1) 0 "Perfect prediction, event occurs")
+
+; wrong prediction, event occurs
+(check-equal? (brier-score 1 0) 1 "Predicted impossible, event occurs")
+
+; 50/50 scores
+(check-equal? (brier-score 0.5 1) 0.25 "50/50 prediction, event occurs")
+(check-equal? (brier-score 0.5 0) 0.25 "50/50 prediction, event doesn't occur")