Cohen's Kappa adalah metrik statistik yang digunakan untuk mengukur kesepakatan antar-annotator dalam tugas klasifikasi atau pelabelan data, dengan mempertimbangkan kemungkinan kesepakatan yang terjadi secara acak.
Metrik ini sangat berguna dalam analisis sentimen, anotasi teks, diagnosis medis, dan penelitian sosial, di mana beberapa individu memberikan label terhadap data yang sama.
Rumus Cohen's Kappa
Cohen's Kappa (k) dihitung menggunakan rumus berikut:
K=(p0-pe)/(1-pe)
Di mana:
P0 (Observed Agreement) = Proporsi kesepakatan aktual antara annotator.
Pe (Expected Agreement) = Proporsi kesepakatan yang diharapkan berdasarkan probabilitas acak.
Nilai Cohen's Kappa berkisar antara -1 hingga 1:
1 → Kesepakatan sempurna antara annotator.
0 → Kesepakatan terjadi secara acak.
Negatif → Kesepakatan lebih buruk daripada tebakan acak (annotator sering tidak setuju).
Contoh Perhitungan Cohen's Kappa Secara Manual
Misalkan dua annotator mengevaluasi 100 komentar YouTube tentang kendaraan listrik, dengan hasil sebagai berikut:
Kategori Sentimen |
Annotator 1 |
Annotator 2 |
Positif |
40 |
35 |
Negatif |
60 |
65 |
1. Hitung P0 (Observed
Agreement):
Annotator setuju dalam:
- 35 dari 40 komentar positif.
- 55 dari 60 komentar negatif.
Total kesepakatan: p=(35+55)/100 = 0.90
2. Hitung Pe (Expected
Agreement):
Probabilitas annotator 1 dan 2 memberikan label yang sama dihitung sebagai:
Pe =(Ppos1 Ppos2) + (Pneg1 Pneg2 )
Pe = ((40/100) x (35/100)) + ((60/100) x (65/100))
Pe =(0.4 0.35)+(0.6 0.65)=0.14+0.39=0.53
3. Hitung Cohen's Kappa:
κ=(0.90−0.53)/(1−0.53)=(0.37)/(0.47)=0.79
Interpretasi Nilai Cohen's Kappa
Nilai Kappa |
Tingkat Kesepakatan |
0.81 - 1.00 |
Kesepakatan sangat baik |
0.61 - 0.80 |
Kesepakatan baik |
0.41 - 0.60 |
Kesepakatan sedang |
0.21 - 0.40 |
Kesepakatan rendah |
0.00 - 0.20 |
Kesepakatan sangat rendah (hampir acak) |
Dari contoh di atas, Cohen's Kappa 0.79 menunjukkan bahwa annotator memiliki kesepakatan yang baik dalam pelabelan sentimen komentar.
Implementasi Cohen's Kappa dalam Python
Jika kita memiliki daftar label dari dua annotator, kita bisa menggunakan scikit-learn untuk menghitung Cohen's Kappa:
from sklearn.metrics import cohen_kappa_score
# Contoh data dari dua annotator (0 = Negatif, 1 = Positif)
annotator_1 = [1, 0, 1, 1, 0, 1, 0, 1, 0, 1]
annotator_2 = [1, 0, 1, 0, 0, 1, 0, 1, 1, 1]
# Menghitung Cohen's Kappa
kappa_score = cohen_kappa_score(annotator_1, annotator_2)
print(f"Cohen's Kappa Score: {kappa_score:.2f}")
Hasilnya akan memberikan nilai Kappa yang menunjukkan tingkat kesepakatan antara kedua annotator.
Kesimpulan
- Cohen's Kappa adalah metrik yang mengukur kesepakatan antar-annotator dengan mempertimbangkan kemungkinan kesepakatan acak.
- Metrik ini lebih akurat dibandingkan sekadar menghitung persentase kesepakatan.
- Nilai di atas 0.60 menunjukkan kesepakatan yang baik, sedangkan di bawah 0.20 menunjukkan kesepakatan rendah.
- Digunakan dalam analisis sentimen, anotasi teks, diagnosis medis, dan penelitian sosial untuk memastikan bahwa pelabelan dilakukan secara objektif dan dapat diandalkan.