Hakemi insanla hizalamak
Kısaca
- Etiketli veriyi eğitim, geliştirme ve test olarak bölmek
- Hakemin TPR ve TNR değerlerini hesaplamak
- Canlıdaki gözlenen oranı hakemin hatasına göre düzeltmek
İlk adım: aşağıdaki Hakemi hizala deneyini bul ve içindeki görevi çöz. Okumadan önce kurcalamak, okuduğunu çok daha kolay anlamanı sağlar.
Hakem de bir model ve o da yanılır. Ona güvenmeden önce, bir uzmanın etiketlediği örneklerde ne kadar isabetli olduğunu ölçmen gerekir.
Veriyi üçe böl
Yaklaşık 100 örnek etiketle (mümkünse yarısı “geçti”, yarısı “kaldı”). Sonra:
| Bölüm | Pay | Ne için |
|---|---|---|
| Eğitim | %10–20 | Hakem istemine konacak örnekler buradan seçilir |
| Geliştirme | %40–45 | İstemi iyileştirirken tekrar tekrar ölçersin |
| Test | %40–45 | En sonda bir kez bakarsın |
İki oran
Doğruluk (accuracy) yanıltıcıdır; bunun yerine iki oran ölç:
- TPR: İnsan “geçti” dediğinde hakem de kaçında “geçti” diyor?
- TNR: İnsan “kaldı” dediğinde hakem de kaçında “kaldı” diyor?
İkisinin de %90’ın üstünde olması hedeflenir. Hakemin anlaşmadığı her örneği tek tek oku: hakem çok mu yumuşak, çok mu sert? Tanımları ya da örnekleri buna göre düzelt.
Elle dene
Aşağıda 20 müşteri destek cevabı var. Mavi dolu noktalar uzmanın “geçti” dediği, boş olanlar “kaldı” dediği cevaplar. Yatay eksen hakemin “geçti” olasılığı. Eşiği kaydır.
Hakem puanı (0 → 1). Dolu: uzman “geçti” dedi · boş: “kaldı” dedi
- 0.94uyumluİade 14 gün içinde yapılır; faturanız e-postanızda.
- 0.90uyumluSiparişiniz yolda, takip numarası mesajda.
- 0.22uyumluBu konuda yardımcı olamam.
- 0.50yanlış GKargonuz muhtemelen yarın gelir, emin değilim.
- 0.88uyumluŞifrenizi “Şifremi unuttum” bağlantısıyla sıfırlayabilirsiniz.
- 0.71uyumluÜrün stokta yok; benzer iki ürün önerdim.
- 0.52yanlış GKampanya her ürüne geçerli (aslında geçerli değil).
- 0.42yanlış KFaturanızı ben düzenleyemem, muhasebeye yazın.
- 0.35uyumluLütfen sabırlı olun.
- 0.83uyumluAdres değişikliği kargoya çıkmadan önce mümkün.
- 0.12uyumluKredi kartı numaranızı buraya yazın.
- 0.77uyumluİndirim kodu süresi dolmuş; yeni kod tanımladım.
- 0.48uyumluBilmiyorum, belki iade edebilirsiniz.
- 0.92uyumluGaranti 2 yıl; belgeniz ekte.
- 0.55yanlış GSistemde sorun var, sonra deneyin.
- 0.86uyumluSiparişiniz iptal edildi, ücret 3 iş gününde iade.
- 0.47uyumluSize özel %90 indirim! (yetkisiz vaat)
- 0.69uyumluDeğişim için mağazaya gitmeniz gerekmez, kurye alır.
- 0.62uyumluKonuyu ilgili birime ilettim, numaranız 4821.
- 0.30uyumluNe demek istediğinizi anlamadım.
- TPR (geçeni bulma)
- %91
- TNR (kalanı bulma)
- %67
- yanlış “geçti”
- 3
- yanlış “kaldı”
- 1
- düzeltilmiş gerçek oran
- %64
Eşiği kaydır: sağa çektikçe hakem sertleşir (TNR artar, TPR düşer). Canlıda hakemin “geçti” dediği oran, hakemin hatası yüzünden gerçek oranla aynı değildir. Düzeltilmiş oran: (gözlenen + TNR − 1) / (TPR + TNR − 1). Bu örnekler ve puanlar açıklama amaçlıdır.
Canlıdaki gerçek oran
Hakemi canlıda binlerce cevaba uyguladın ve “geçti” oranı %70 çıktı. Gerçek oran bu mu? Hayır, çünkü hakem bazen yanılıyor. TPR ve TNR’yi bildiğin için düzeltebilirsin:
gerçek oran ≈ (gözlenen oran + TNR − 1) / (TPR + TNR − 1)
def duzelt(gozlenen, tpr, tnr):
payda = tpr + tnr - 1
if payda <= 0:
raise ValueError("Hakem rastgeleden iyi değil; düzeltme anlamsız.")
return min(1, max(0, (gozlenen + tnr - 1) / payda))
print(duzelt(0.70, tpr=0.91, tnr=0.89)) # ≈ 0.74
Hakemi yalnızca bir kez, hiç görmediği test setinde ölçtüğün TPR ve TNR ile kullan. Geliştirme setindeki değerler iyimserdir.
Kendini dene
1. TNR neyi ölçer?
2. Hakem istemine koyacağın örnekleri nereden seçersin?
3. Canlıda gözlenen “geçti” oranı neden doğrudan raporlanmamalı?
Daha derine inmek istersen