İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
DersOrta30 dakikaMachine Learning Engineer · 7. ders

Metrik seçimi ve işletim eşiği

Hata maliyetinden metrik türetmeyi, eşikten bağımsız ve eşiğe bağlı ölçümleri ayırmayı ve işletim eşiğini maliyet hesabıyla seçmeyi öğretir.

Önkoşul: Machine Learning

BU DERSİN SONUNDA

  • Dengesiz sınıflı bir problemde doğruluk yerine hangi metriğin kullanılacağını gerekçelendirmek
  • Eşikten bağımsız sıralama metrikleri ile eşiğe bağlı işletim metriklerini ayırt etmek
  • Yanlış pozitif ve yanlış negatif maliyetinden işletim eşiği türetmek
  • Seçilen metriği modelin çıktısının tetiklediği karara bağlamak
  1. 1

    Teori

    Kavramın çalışma mantığı

  2. 2

    Örnek

    Gerçek bir senaryo üzerinde gösterim

  3. 3

    Lab

    Uygulamalı alıştırma

  4. 4

    Test

    Kısa ölçüm

  5. 5

    Proje

    Rotadaki projeye katkı

Kısa cevap

Metrik, modelin değil kararın özelliğidir: modelin çıktısı hangi eylemi tetikliyor ve o eylemin iki farklı hatası kime neye mal oluyor sorusu cevaplanmadan metrik seçilemez. Olasılık üreten bir sınıflandırıcıda birbirinden ayrı iki karar vardır — modelin sıralama gücü (eşikten bağımsız) ve işletim eşiği (hata maliyetlerinden türetilir). İkisini tek bir sayıya sıkıştırmak, çoğu üretim probleminde yanlış modelin seçilmesine yol açar.

Teori: doğruluk neden yanıltır#

Doğruluk, sınıf dağılımını gizler. Pozitif sınıfın seyrek olduğu bir sette her örneğe negatif diyen boş bir model bile yüksek doğruluk üretir, çünkü taban çizgisi zaten yüksektir. Bir metriğin ne söylediğini anlamak için önce onun boş modelde ne verdiğini hesaplayın; taban çizgisini geçmeyen bir sayı bilgi taşımaz.

Karışıklık matrisi bu yüzden başlangıç noktasıdır: doğru pozitif, yanlış pozitif, yanlış negatif ve doğru negatif sayıları. Kesinlik, pozitif dediklerinizin ne kadarının gerçekten pozitif olduğunu; duyarlılık, gerçek pozitiflerin ne kadarını yakaladığınızı söyler. İkisi farklı hatayı cezalandırır ve hatalar simetrik değildir: bir dolandırıcılık vakasını kaçırmak ile temiz bir işlemi incelemeye düşürmek aynı şey değildir.

Eşikten bağımsız ve eşiğe bağlı metrikler#

MetrikNeyi ölçerNe zaman uygunTuzak
DoğrulukDoğru sınıflandırılan örneklerin oranıSınıflar dengeli ve iki hata benzer maliyetteSeyrek pozitifte taban çizgisi görünmez
KesinlikPozitif dediklerinin ne kadarı doğruYanlış alarmın maliyeti yüksek, inceleme kuyruğu sınırlıEşiği yükseltip kapsamı daraltarak şişirilebilir
DuyarlılıkGerçek pozitiflerin ne kadarı yakalandıKaçırmanın maliyeti yüksek (arıza, dolandırıcılık, tanı)Her örneğe pozitif diyerek tavana çekilebilir
F1Kesinlik ve duyarlılığın harmonik ortalamasıTek sayı gerektiğinde ve iki hata benzer maliyetteEşit maliyet varsayar; çoğu işte bu varsayım yanlış
ROC AUCRastgele bir pozitifin rastgele bir negatiften yüksek puan alma olasılığıEşikten bağımsız olarak sıralama gücünü karşılaştırmakPozitif sınıf çok seyrekse iyimser görünür
PR AUCKesinlik-duyarlılık eğrisinin altındaki alanPozitif sınıf seyrek ve ilgi pozitif sınıftaTaban çizgisi pozitif orana bağlıdır; farklı setler arasında kıyaslanamaz
Tablo yönlendiricidir; nihai kararı kendi hata maliyeti tablonuzla verin.

Maliyet duyarlı eşik#

Eşik, istatistiksel değil ekonomik bir karardır. Bir örneğe pozitif demenin beklenen maliyeti, yanlış pozitif maliyeti ile negatif olma olasılığının çarpımıdır; negatif demenin beklenen maliyeti ise yanlış negatif maliyeti ile pozitif olma olasılığının çarpımı. İkisinin eşitlendiği olasılık, teorik en iyi eşiktir ve yalnızca iki maliyetin oranına bağlıdır — mutlak büyüklüklerine değil. Bu yüzden paydaşlardan tam rakam alamasanız bile "bir kaçırma, kaç yanlış alarma bedeldir" sorusunu cevaplatabilirseniz eşiği türetebilirsiniz.

python
def en_iyi_esik(olasiliklar, gercek, maliyet_yp, maliyet_yn):
    """Beklenen maliyeti en kucuklestiren esigi aday esikler arasinda arar.

    olasiliklar: dogrulama kumesindeki tahmin edilen pozitif olasiliklari
    gercek: ayni sirada 0/1 gercek etiketler
    maliyet_yp: bir yanlis pozitifin birim maliyeti (kendi is biriminizde)
    maliyet_yn: bir yanlis negatifin birim maliyeti (ayni birimde)

    Donus: (secilen esik, o esikteki toplam maliyet).
    """
    # En buyuk olasiligin ustundeki aday, "hic pozitif deme" secenegini kapsar.
    adaylar = sorted(set(olasiliklar)) + [max(olasiliklar) + 1.0]
    en_iyi, en_dusuk = 0.5, float("inf")
    for esik in adaylar:
        yp = sum(1 for p, y in zip(olasiliklar, gercek) if p >= esik and y == 0)
        yn = sum(1 for p, y in zip(olasiliklar, gercek) if p < esik and y == 1)
        maliyet = yp * maliyet_yp + yn * maliyet_yn
        if maliyet < en_dusuk:
            en_iyi, en_dusuk = esik, maliyet
    return en_iyi, en_dusuk

Bu aramanın koştuğu yer doğrulama kümesidir, test kümesi değil. Eşiği test kümesinde seçerseniz test kümesi ikinci bir eğitim setine dönüşür ve raporladığınız sayı iyimserleşir. Ayrıca eşik sabit bir varlık değildir: girdi dağılımı veya kapasite değişince yeniden seçilmelidir; bu dersin devamı izleme bölümünde bu tetikleyiciyi kuracaksınız.

Karar: metrik nasıl seçilir#

  1. 1Kararı yaz

    Model çıktısı hangi eylemi tetikliyor, o eylemi kim yapıyor ve geri alınabilir mi?

  2. 2İki hatayı fiyatla

    Yanlış pozitif ve yanlış negatifin kime neye mal olduğunu aynı birimde yazın; birim para olmak zorunda değil, inceleme dakikası da olur.

  3. 3Kapasite sınırını ekle

    Günde en çok kaç pozitif işlenebiliyor? Sınır varsa doğru metrik ilk k adaydaki kesinliktir, genel kesinlik değil.

  4. 4İki metrik seç

    Biri model karşılaştırmak için eşikten bağımsız, biri canlı raporlama için eşiğe bağlı olsun.

Sık yapılan hata#

En sık hata her şeyi tek sayıya indirmektir: F1 rapor metriği seçilir, ekip aylarca onu iyileştirir ve kimse F1'in iki hatanın eşit maliyette olduğunu varsaydığını fark etmez. İkinci sık hata, sınıf dengeleme ile metrik düzeltmeyi karıştırmaktır; aşırı örnekleme veya sınıf ağırlığı modelin gördüğü dağılımı değiştirir, kararın ekonomisini değiştirmez. Üçüncüsü, dengeleme sonrası çıkan skorları hâlâ gerçek olasılık gibi okumaktır.

LAB · UYGULAMALI ALIŞTIRMA

Kendi verinizde maliyet duyarlı eşik seçin

  1. 1Elinizdeki ikili sınıflandırma probleminde veriyi eğitim, doğrulama ve test olarak üçe bölün; veri bir zaman ekseni taşıyorsa zamana, taşımıyorsa müşteri veya oturum gibi bir gruba göre bölün ve bölme kuralını tek cümleyle yazın.
  2. 2Bir taban çizgisi kurun (çoğunluk sınıfı ve tek değişkenli basit bir kural) ve doğrulama kümesinde kesinlik, duyarlılık ile kesinlik-duyarlılık eğrisini çıkarın.
  3. 3Bir yanlış pozitifin ve bir yanlış negatifin maliyetini aynı birimde yazın; rakam yoksa oran yazın ve varsayımlarınızı ayrı bir satırda not edin.
  4. 4Doğrulama kümesinde 0,05 adımlarla eşiği tarayın, her eşikte beklenen maliyeti hesaplayın ve en düşük maliyetli eşiği işaretleyin.
  5. 5Seçtiğiniz eşiği test kümesine bir kez uygulayın; sonucu kesinlik-duyarlılık cinsinden değil, taban çizgisine göre maliyet farkı cinsinden raporlayın.
  6. 6Maliyet oranını iki katına ve yarısına çekip eşiğin nereye kaydığını not edin; eşik oynamıyorsa modelin sıralama gücünün o bölgede zayıf olduğunu yazın.

Beklenen çıktı

Yazılı hata maliyeti varsayımları, doğrulama kümesinde seçilmiş bir işletim eşiği ve bu eşiğin taban çizgisine karşı test kümesindeki maliyet farkı.

Sık sorulan sorular

ROC AUC yüksek çıktı ama model sahada işe yaramıyor, nasıl olur?

AUC sıralama gücünü ölçer, işletim noktasını değil. Pozitif sınıf seyrekse model pozitifleri ortalamada negatiflerin üstüne koyabilir ama seçtiğiniz eşiğin üstünde yine de ezici çoğunlukla negatif bulunur. Kesinlik-duyarlılık eğrisine ve kullandığınız eşikteki gerçek sayılara bakın.

Sınıf dengeleme yapmalı mıyım?

Önce maliyet duyarlı eşiği deneyin; çoğu zaman dengelemeye gerek kalmadan aynı sonucu verir ve skorların yorumunu bozmaz. Dengeleme, öğrenme sinyalinin çok zayıf kaldığı aşırı seyrek durumlarda anlamlıdır ve ardından skorların kalibrasyonunu kontrol etmeyi gerektirir.

Çok sınıflı problemde hangi ortalamayı almalıyım?

Makro ortalama her sınıfa eşit ağırlık verir; seyrek ama önemli sınıflar varsa bunu isteyebilirsiniz. Mikro ortalama örnek başına eşit ağırlık verir ve büyük sınıfın davranışına yakınsar. Ağırlıklı ortalama ikisinin arasıdır. Hangisini seçtiğinizi rapor başlığında yazın, yoksa iki ekip aynı isimle farklı sayıları tartışır.

LEARN

Machine Learning Engineer rotasına devam et

Dersler tek başına da okunabilir, ama sıralı ilerlemek önkoşul boşluklarını kapatır.