MAP (Mean Average Precision)

Eval

MAP (Mean Average Precision)

まとめ
  • MAP adalah metrik peringkat yang menghitung rata-rata Average Precision (AP) dari beberapa kueri.
  • Dengan contoh pencarian, kita menghitung AP dan MAP untuk melihat pengaruh urutan hasil.
  • Juga membahas isu praktis seperti daftar kandidat panjang dan pembobotan.

1. Definisi AP dan MAP #

Untuk satu kueri, Average Precision (AP) adalah rata-rata dari nilai precision pada setiap posisi di mana item relevan ditemukan.

$$ \mathrm{AP} = \frac{1}{|G|} \sum_{k \in G} P(k) $$

Di sini, \(G\) adalah himpunan posisi item relevan, dan \(P(k)\) adalah precision hingga posisi \(k\).
MAP adalah rata-rata dari semua nilai AP di seluruh kueri.

$$ \mathrm{MAP} = \frac{1}{Q} \sum_{q=1}^Q \mathrm{AP}_q $$


2. Perhitungan di Python #

Scikit-learn tidak memiliki fungsi MAP langsung, tetapi kita dapat menghitung average_precision_score per kueri dan menghitung rata-ratanya.

from sklearn.metrics import average_precision_score
import numpy as np

aps = []

for q in queries:
    aps.append(average_precision_score(y_true[q], y_score[q]))

map_score = np.mean(aps)
print("MAP:", round(map_score, 4))

y_true[q] berisi label biner (0/1), dan y_score[q] berisi skor keluaran model.


3. Karakteristik dan Keunggulan #

  • Efektif untuk peringkat dengan banyak item relevan.
  • Memberi skor lebih tinggi jika item benar ditemukan lebih awal.
  • Menggabungkan aspek precision dan recall, memberikan evaluasi yang lebih menyeluruh dibandingkan Precision@k.

4. Aplikasi Praktis #

  • Sistem pencarian: Mengevaluasi seberapa baik hasil mencakup semua item relevan.
  • Sistem rekomendasi: Cocok untuk kasus dengan banyak item relevan (misalnya produk yang dilihat atau dibeli).
  • Learning to Rank (LTR): Digunakan untuk evaluasi offline pada model peringkat seperti LambdaMART atau XGBoost.

5. Hal yang Perlu Diperhatikan #

  • Jika jumlah item relevan per kueri sangat bervariasi, MAP bisa bias — pertimbangkan Weighted MAP.
  • Kueri tanpa item relevan (semua label 0) tidak memiliki AP terdefinisi; tentukan apakah akan dihapus atau dianggap nol.
  • Gunakan bersama NDCG, Recall@k, dan metrik lain untuk penilaian peringkat yang lebih menyeluruh.

Ringkasan #

  • MAP adalah rata-rata dari average precision — ideal untuk evaluasi peringkat dengan banyak jawaban benar.
  • Mudah dihitung dengan merata-ratakan nilai AP per kueri.
  • Gabungkan dengan NDCG atau Recall@k untuk meningkatkan kualitas sistem peringkat dari berbagai sudut pandang.