İçeriğe atla
SinaptikLabAI KNOWLEDGE PLATFORM
DersBaşlangıç35 dakikaMachine Learning Engineer · 2. ders

Sızıntıyı veri toplanırken yakalamak

Etiket sızıntısının, zaman kaçağının ve örnekleme yanlılığının nasıl oluştuğunu; bir kolonun tahmin anında gerçekten elde olup olmadığını kolon kolon denetlemeyi öğretir.

Önkoşul: Machine Learning

BU DERSİN SONUNDA

  • Etiket sızıntısı, zaman kaçağı ve örnekleme yanlılığını birbirinden ayırmak
  • Her kolon için "tahmin anında elde miydi" denetimini yürütmek
  • Zaman damgalarıyla nokta-zamanlı bir eğitim kümesi kurmak
  • Şüphe uyandıracak kadar yüksek bir skorun kaynağını teşhis etmek
  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

Sızıntı, eğitimde kullanılan bir bilginin tahmin anında gerçekte elde olmamasıdır. Model bu bilgiyle doğrulamada da yüksek skor alır, çünkü sızıntı eğitim ve doğrulama kümelerinin ikisinde birden bulunur; hata ancak üretimde ortaya çıkar. Bu yüzden sızıntı bir model hatası değil veri toplama hatasıdır ve modelleme başlamadan denetlenir.

Teori: zaman oku#

Her kaydın iki zamanı vardır: olayın gerçekleştiği an ve o bilginin sisteme yazıldığı an. Veri ambarındaki bir satır çoğu zaman yalnızca son halini taşır; alanın ne zaman dolduğu kayıtlı değildir. Model bu satırı okurken geçmişe değil geleceğe bakmış olur. Sızıntının fiziksel kaynağı budur: sürüm saklamayan bir tabloda geçmiş ile şimdi birbirine karışır.

İkinci kaynak, etiketle nedensel olarak bağlı alanlardır. "İptal nedeni" kolonu iptal tahmininde kusursuz çalışır, çünkü ancak iptal gerçekleştikten sonra dolar. Bu alan yasak olduğu için değil, tahmin anında boş olduğu için kullanılamaz. Ayrım nettir: soru "bu kolon hedefle çok mu ilişkili" değil, "bu kolon tahmin anında dolu muydu" sorusudur.

Üçüncü kaynak örneklemedir: eğitim kümesi, üretimde karşılaşılacak evrenden farklı bir süzgeçten geçmişse model o süzgeci öğrenir. Yalnızca onaylanmış başvurularla eğitilen bir risk modeli, reddedilenlerin davranışını hiç görmez; üretimde ise bütün başvuruları puanlar. Bu sızıntı türü tek bir kolonda görünmez, bütün kümeye sinmiştir.

Örnek: türler ve belirtileri#

TürNasıl oluşurBelirtiÖnlem
Etiket sızıntısıEtiketten sonra dolan alan özellik olarak girerTek kolon tek başına neredeyse kusursuz ayırıyorKolonun dolma anını zaman damgasıyla doğrulayın
Zaman kaçağıAlanın güncel değeri geçmiş bir tahmin anına taşınırDoğrulama skoru yüksek, üretim skoru düşükNokta-zamanlı birleştirme kurun
Örnekleme yanlılığıEğitim kümesi üretimdekinden farklı süzgeçten geçmişModel belirli bir alt küme dışında anlamsızlaşıyorSüzgeci belgeleyin, mümkünse süzgeç dışını da örnekleyin
Kopya kayıtAynı olay birden çok satırda, eğitim ve doğrulamaya dağılmışÇok basit modellerde bile aşırı yüksek skorDoğal anahtarla tekilleştirin
Ön işleme sızıntısıÖlçekleyici ya da doldurucu tüm veriye uydurulmuşSkor küçük ama tutarlı biçimde iyimserDönüşümleri yalnızca eğitim bölümüne uydurun
Belirtiler teşhise başlangıç noktasıdır; kesin kanıt her zaman kaynak sistemdeki zaman damgası denetiminden gelir.

Karar: kolon denetimi#

  1. 1Tahmin anını sabitle

    Birinci bölümde yazdığınız tahmin anını bütün kolon denetiminin referansı yapın.

  2. 2Her kolona tek soru sor

    Bu alan, tahmin anında bu değere sahip miydi? Cevap "muhtemelen" ise alan şüphelidir.

  3. 3Dolma anını bul

    Şüpheli alan için kaynak sistemde güncelleme zaman damgası ya da değişiklik günlüğü arayın.

  4. 4Nokta-zamanlı birleştir

    Özelliği, tahmin anından önceki en son değeriyle birleştirin; sonraki güncellemeleri dışarıda bırakın.

  5. 5Kanıtla ve kaydet

    Dışarıda bırakılan her alanı gerekçesiyle listeleyin; bu liste veri sözleşmesinin parçasıdır.

Nokta-zamanlı birleştirme#

sql
-- Yanlış: olayı, müşterinin BUGÜNKÜ profiline bağlar.
select o.olay_id, o.etiket, m.risk_skoru
from olaylar o
join musteri_profili m on m.musteri_id = o.musteri_id;

-- Doğru: tahmin anından ÖNCEKİ en son profil sürümünü bağlar.
select o.olay_id, o.etiket, p.risk_skoru
from olaylar o
join lateral (
  select g.risk_skoru
  from musteri_profili_gecmisi g
  where g.musteri_id = o.musteri_id
    and g.gecerli_baslangic <= o.tahmin_ani
  order by g.gecerli_baslangic desc
  limit 1
) p on true;

Sık yapılan hata#

Yaygın yanılgı, sızıntıyı doğrulama kümesiyle yakalanabilir bir sorun sanmaktır. Sızıntı eğitim ve doğrulama kümesinin ikisinde de bulunur; çapraz doğrulama onu gizler, açığa çıkarmaz. Tek güvenilir teşhis, kolonun dolma anını kaynak sistemde doğrulamaktır. İkinci yanılgı, şüpheli kolonu silip geçmektir: alan gerçekten öngörücüyse, aynı bilginin tahmin anında elde olan bir vekilini aramak gerekir.

  • Tek bir özellik çıkarıldığında skor dramatik biçimde çöküyor.
  • Doğrulama skoru, alandaki uzmanın elle verdiği kararlardan belirgin biçimde iyi.
  • Modelin en önemli özelliği, iş sürecinde etiketten sonra doldurulan bir alan.
  • Geriye doğru gidildikçe skor düzenli olarak bozuluyor.
  • Aynı kimliğe ait kayıtlar hem eğitimde hem doğrulamada bulunuyor.

LAB · UYGULAMALI ALIŞTIRMA

Kolon denetimi tablosu çıkarın

  1. 1Eğitim kümenizin tüm kolonlarını bir tabloya yazın; her satıra kaynak sistemi ve alanın dolduğu iş adımını ekleyin.
  2. 2Her kolonu tahmin anıyla karşılaştırıp "elde", "şüpheli" veya "sonradan dolar" olarak işaretleyin.
  3. 3Şüpheli kolonlar için kaynak tabloda bir güncelleme zaman damgası arayın; bulduğunuzda dolma anını etiket anıyla karşılaştırın.
  4. 4"Sonradan dolar" işaretli kolonları çıkarıp temel çizginizi ve basit bir modeli yeniden çalıştırın; skor farkını not edin.
  5. 5Doğal anahtarla (örneğin müşteri-gün) tekilleştirme yapıp kopya kayıt sayısını raporlayın.
  6. 6Dışarıda bırakılan her alanı gerekçesiyle listeleyip veri sözleşmesi notuna ekleyin.

Beklenen çıktı

Her kolonun tahmin anındaki durumunu, dışlama gerekçelerini ve sızıntı temizliğinden önceki ile sonraki skor farkını gösteren denetim tablosu.

Sık sorulan sorular

Sızıntıyı yakaladım ama kolon gerçekten değerli. Ne yapmalıyım?

Alanın taşıdığı bilginin tahmin anında elde olan bir vekilini arayın. "İptal nedeni" kullanılamaz ama "son bir haftadaki destek kaydı sayısı" kullanılabilir. Vekil bulunamıyorsa tahmin anını değiştirmeyi değerlendirin: kararı biraz daha geç vermek bazen hem mümkün hem daha değerlidir.

Kaynak sistemde hiç zaman damgası yoksa ne yapılır?

Geriye dönük eğitim kümesi kurmak yerine ileriye dönük toplamaya başlayın: bugünden itibaren özelliklerin anlık görüntüsünü tahmin anında kaydedin. Bu, veri birikene kadar beklemek demektir ama sızıntılı bir modelle üretime çıkmaktan ucuzdur.

Örnekleme yanlılığını tamamen ortadan kaldırabilir miyim?

Genellikle hayır. Amaç yok etmek değil, sınırı bilmek ve yazmaktır: model hangi alt evrende geçerli? Reddedilen başvurular gibi hiç görülmeyen kesimden küçük bir rastgele örneklemi sürece bilinçli olarak dahil etmek, yanlılığı zamanla azaltan pratik bir yoldur.

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.