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
Teori
Kavramın çalışma mantığı
- 2
Örnek
Gerçek bir senaryo üzerinde gösterim
- 3
Lab
Uygulamalı alıştırma
- 4
Test
Kısa ölçüm
- 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ür | Nasıl oluşur | Belirti | Önlem |
|---|---|---|---|
| Etiket sızıntısı | Etiketten sonra dolan alan özellik olarak girer | Tek kolon tek başına neredeyse kusursuz ayırıyor | Kolonun 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ır | Doğrulama skoru yüksek, üretim skoru düşük | Nokta-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şıyor | Süzgeci belgeleyin, mümkünse süzgeç dışını da örnekleyin |
| Kopya kayıt | Aynı olay birden çok satırda, eğitim ve doğrulamaya dağılmış | Çok basit modellerde bile aşırı yüksek skor | Doğ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 iyimser | Dönüşümleri yalnızca eğitim bölümüne uydurun |
Karar: kolon denetimi#
- 1Tahmin anını sabitle
Birinci bölümde yazdığınız tahmin anını bütün kolon denetiminin referansı yapın.
- 2Her kolona tek soru sor
Bu alan, tahmin anında bu değere sahip miydi? Cevap "muhtemelen" ise alan şüphelidir.
- 3Dolma anını bul
Şüpheli alan için kaynak sistemde güncelleme zaman damgası ya da değişiklik günlüğü arayın.
- 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.
- 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#
-- 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
- 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.
- 2Her kolonu tahmin anıyla karşılaştırıp "elde", "şüpheli" veya "sonradan dolar" olarak işaretleyin.
- 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"Sonradan dolar" işaretli kolonları çıkarıp temel çizginizi ve basit bir modeli yeniden çalıştırın; skor farkını not edin.
- 5Doğal anahtarla (örneğin müşteri-gün) tekilleştirme yapıp kopya kayıt sayısını raporlayın.
- 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.
