Bilinmeyen girdi bilinen kategoriye benzemeye başlayabilir
Üretimde kullanılan veri hazırlama adımı A, B ve C kategori değerlerini tanıyor. Yeni bir kayıtta Z geliyor. Kodlayıcı hatayı durdurmak yerine bilinmeyen değeri sıfırlara çeviriyor. Ekip, tüm sıfırlar için “bu A kategorisi” açıklamasını kullanıyorsa yeni kayıt fark edilmeden bilinen gruba katılmış gibi görünebilir. Sorun modelin tahmininden önce, girdi temsilinde oluşur. Kaynakta farklı iki durum aynı vektöre dönüştüğünde yalnız vektöre bakarak ayrımı geri getiremezsiniz.
Bu yazıda kategoriler modelin girdi alanına aittir; tahmin edilecek hedef sınıflar değildir. Özgün uygulama, üç bilinen metin ve bir bilinmeyen metin için kodlama tablosu hazırlamaktır. Bir sütunun çıkarılmasıyla sıfır vektörünün anlamını karşılaştıracağız. Gerçek model eğitimi veya üretim verisi kullanılmaz. Beklenen davranış resmi kodlayıcı belgesine dayanır; sayısal tablo yerel ve bağımsız bir karar modeliyle kontrol edilir.
Öğrenilmiş sözlüğü sabit tutun
Sözlük sırası A, B, C olarak açıkça verilmiştir. Tam gösterimde sütunlar da aynı sırayı izler. A kaydı birinci, B ikinci, C üçüncü sütunda bir taşır; diğer sütunları sıfırdır. Bu üç etiket için ayrım nettir. Z sözlükte yoktur. Z’nin boş değer, A’nın başka yazımı veya C’nin yeni adı olduğuna dair hiçbir bilgi verilmemiştir. Dolayısıyla metni otomatik düzeltmek veya yakın bir kategoriye bağlamak görev kapsamı değildir.
scikit-learn OneHotEncoder belgesinde handle_unknown=ignore seçeneği, dönüşüm sırasında bilinmeyen kategori için ilgili özellik sütunlarının sıfır olacağını belirtir. Tam sütun düzeninde bu sıfır vektörünün ters dönüşüm karşılığı None olur. Bu teknik davranış bilinmeyen girdiyi nasıl temsil ettiğinizi söyler; bilinmeyen kaydın iş açısından kabul edilip edilmeyeceğine karar vermez. Kayıt sözleşmesi ve sonraki model davranışı ayrıca incelenmelidir.Kaynak: scikit-learn — OneHotEncoder
| Ham kategori | A sütunu | B sütunu | C sütunu | Sözlükte var mı? |
|---|---|---|---|---|
| A | 1 | 0 | 0 | Evet |
| B | 0 | 1 | 0 | Evet |
| C | 0 | 0 | 1 | Evet |
| Z | 0 | 0 | 0 | Hayır |
A sütunu çıkarıldığında hangi ayrım kaybolur?
İkinci senaryoda referans kategori A’nın sütunu çıkarılır. Geriye B ve C sütunları kalır. A, bu iki sütunda zaten sıfır taşıdığı için 00 olur. Bilinmeyen Z de ignore kuralıyla 00 olur. Aynı vektör artık iki farklı kaynak durumuyla ilişkilidir. Kodlayıcının düşürülmüş kategori bulunan durumda tüm sıfırları ters dönüşümde o kategoriye bağlaması belgelenmiştir; bu örnekte sonuç A olarak görünür.Kaynak: scikit-learn — OneHotEncoder
| Ham kategori | B sütunu | C sütunu | Vektörden ters yorum |
|---|---|---|---|
| A | 0 | 0 | A |
| B | 1 | 0 | B |
| C | 0 | 1 | C |
| Z | 0 | 0 | A ile ayırt edilemez |
Z satırındaki “A ile ayırt edilemez” ifadesi kaynak etiketin gerçekten A olduğu anlamına gelmez. Bu, temsilin kaybettiği ayrımı anlatır. Ters dönüşümün bir A metni döndürmesi de özgün Z’nin bulunmadığını kanıtlamaz. Burada gerçek scikit-learn paketi çalıştırılmadı; dört değer için belgenin tarif ettiği dönüşüm bağımsız tablo hesabıyla gösterildi. Kendi sisteminizde paket sürümü ve gerçek ayarlarla ayrıca uygulama kontrolü yapın.
Bilinmeyen işaretini dönüşümden önce koruyun
Ham kategori ile sözlük üyeliğini kodlamadan önce kaydedebilirsiniz. Böylece vektör 00 olsa bile unknown=true işareti kaynağın tanınmadığını taşır. Bilinmeyenleri tamamen reddetmek de bir politika olabilir; karar iş sözleşmesine bağlıdır. Her iki yaklaşımda da model girdisini hazırlayan sürüm, sütun sırası ve sözlük aynı kayıtla ilişkilendirilmelidir. Yalnız sayısal matrisin tutulması hangi ayrımın kaybolduğunu sonradan araştırmayı zorlaştırır.
| Durum | Korunacak bilgi | Bu örnekte sonraki adım |
|---|---|---|
| A/B/C | Ham kategori ve sözlük sürümü | Aynı kodlayıcıyla dönüştür |
| Z | Ham Z ve unknown=true | Bilinmeyen girdi politikasına yönlendir |
| Yeni sözlük önerisi | Eski ve önerilen sütun düzeni | Ayrı sürüm olarak değerlendir |
Bilinmeyen diye özel bir UNK kategorisi eklemek farklı bir tasarımdır. ignore seçeneği kendi başına yeni bir UNK sütunu oluşturmaz. Yeni sütun eklemek modelin beklediği boyutu ve eğitim sözleşmesini değiştirebilir. Aynı şekilde sütun düşürmeyi her durumda yanlış ilan etmeyin; bazı modelleme tercihlerinde referans gösterim istenebilir. Buradaki kontrol, bilinmeyen değer politikasının o gösterimle birlikte ne anlam taşıdığını açık etmektir.
Kayıpsız geri dönüş iddiasını sınayın
Tek girdi özelliğinin sözlük sırası A,B,C. Ham kayıtlar A,B,C,Z; Z bilinmiyor. handle_unknown=ignore davranışını önce tüm A/B/C sütunlarıyla, sonra A sütunu çıkarılarak göster. Her satırda ham metin, vektör, sözlük üyeliği ve ters yorum bulunsun. Z’yi A diye düzeltme. Tam gösterimde bilinmeyenin 000, A çıkarılınca A ve Z’nin 00 olduğunu denetle. Bu örnek model eğitimi değildir; gerçek kütüphane çalıştırması iddia etme.
Çıktıyı denetlerken iki senaryonun sütun başlıklarını kontrol edin. 100 vektörünün A anlamı, sütun sırasının A/B/C olmasına bağlıdır. Başlıklar değişirken değerler aynı kalırsa başka bir hata doğar. Sonra ham dört değerin kaç ayrı vektöre dönüştüğünü sayın: tam düzende dört, A çıkarılmış düzende üç ayrı vektör vardır. Bu sayı kontrolünü her satırın beklenen vektörüyle birlikte kullanın.
Tam sütunlar: A=100, B=010, C=001, Z=000; dört ayrı vektör. A çıkarılmış: A=00, B=10, C=01, Z=00; üç ayrı vektör. Ham bilinmeyen sayısı iki senaryoda da 1. Temsil değişikliği Z’yi bilinen kaynak yapmaz. Eğitilen veya çalıştırılan gerçek model yok.
İkinci bir bilinmeyen geldiğinde
Yeni bir D kaydı ekleyin; sözlük yine A/B/C olarak kalsın. D’nin iki kodlama düzenindeki vektörünü yazın. Sonra yalnız vektöre bakarak Z ile D’yi ayırıp ayıramadığınızı açıklayın. Son olarak A sütunu çıkarılmış durumda kaç farklı ham değerin 00 ürettiğini bulun. Bilinmeyen bayrağının hangi ayrımı koruduğunu, hangisini tek başına korumadığını da düşünün.
D tam düzende 000, A çıkarılmış düzende 00 olur. Z ile D her iki vektör düzeninde ayırt edilemez. İkinci düzende A/Z/D üç ham değer aynı 00’ı üretir. unknown işareti A’yı bilinmeyenlerden ayırır; Z ile D ayrımı için ham kategori de gerekir.
Üretim akışına dönerken bir vektörü doğru boyutta olduğu için yeterli saymayın. Kaynak kategorisi, bilinmeyen kararı ve kodlayıcı sürümü birlikte izlenebilmelidir. Böylece ekip, hatalı bir tahmini incelerken modelin önüne gerçekten hangi bilginin gittiğini anlayabilir. Bu uygulamanın teslimi başarı oranı değil, temsilin koruduğu ve kaybettiği ayrımları açıklayan bir dönüşüm kaydıdır.
Kaynaklar ve doğrulama
- scikit-learn — OneHotEncoder
handle_unknown=ignore bilinmeyen değeri sıfırlara çevirir; düşürülmüş kategori varsa ters dönüşümde sıfır vektörü ona bağlanabilir.
Erişim ve kontrol:
Üretimde Yapay Zekâ
Üretimde Yapay Zekâ eğitimine modelin girdi etiketleriyle kodlayıcının sütun listesini birlikte getirebilirsiniz. Bilinmeyen bir değerin hangi vektöre dönüştüğünü göstermek, veri akışındaki sessiz anlam kaybını incelemeyi sağlar.
- Kuruma özel planlanır