Код Middle Оценка качества обновлено

nDCG@k

Условие

Напишите ndcg_at_k(ranked_rels, k): ranked_rels это оценки релевантности документов в порядке выдачи (0 нерелевантный, больше лучше). DCG@k = Σ rel_i / log2(i + 1) по позициям i от 1 до k. IDCG@k это DCG тех же оценок, отсортированных по убыванию. Верните DCG / IDCG, округлённое до 4 знаков; если IDCG = 0, верните 0.0.

Примеры

ndcg_at_k([3, 2, 1], 3) // 1
ndcg_at_k([1, 2, 3], 3) // 0.79
ndcg_at_k([0, 0, 0], 3) // 0

Как подойти

Подсказки: 1
  1. Позиция i с единицы, дисконт log2(i + 1); в цикле с нуля это log2(i + 2).

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме