def calculate_mrr(ranks):
"""正解が出た順位からMRRを計算する"""
reciprocal_ranks = []
for rank in ranks:
if rank > 0:
rr = 1 / rank
else:
# 0は「正解が見つからなかった」
rr = 0
reciprocal_ranks.append(rr)
if len(reciprocal_ranks) == 0:
return 0
mrr = sum(reciprocal_ranks) / len(reciprocal_ranks)
return mrr
# 3つの質問で、正解が1位、2位、3位に出た
answer_ranks = [1, 2, 3]
score = calculate_mrr(answer_ranks)
print(f"MRR: {score:.3f}")
# 結果:MRR: 0.611
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme




















