INNER CODE UNIT · Go

ndcg

orneryd/NornicDB · cmd/eval/main.go:366

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]])
		dcg += grade / (1.0 + float64(i))
	}
	// Ideal DCG (perfect ranking)
	idcg := 0.0
	for i := 0; i < min(k, len(grades)); i++ {
		idcg += 1.0 / (1.0 + float64(i))
	}
	if idcg == 0 {
		return 0.0

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…