INNER CODE UNIT · Go
mrr
orneryd/NornicDB · cmd/eval/main.go:357
func mrr(returned []string, expected map[string]bool) float64 {
for i, id := range returned {
if expected[id] {
return 1.0 / float64(i+1)
}
}
return 0.0
}
func ndcg(returned []string, grades map[string]int, k int) float64 {
// Simplified NDCG
if len(grades) == 0 {
return 0.0
}
limit := min(k, len(returned))
dcg := 0.0
for i := 0; i < limit; i++ {
grade := float64(grades[returned[i]])