Data Cleaning
Veri temizleme, eğitimden önce bir veri kümesindeki bozuk dosyaları, yinelenen kayıtları, eksik değerleri ve etiket hatalarını bulup düzeltir. Teknikleri, araçları ve kodu ele alır.
Veri temizleme; veri arındırma veya veri ayıklama olarak da adlandırılır ve bir veri kümesindeki bozuk, yinelenen, eksik, tutarsız ve yanlış etiketlenmiş kayıtları bulup düzeltme ya da kaldırma işlemidir. Makine öğreniminde (ML) bu işlem, veri ön işleme ve eğitimden önce gelir; çünkü model, hatalar dâhil olmak üzere eğitim verilerinde ne varsa onu öğrenir. Bisikletlerin yarısının "motosiklet" olarak etiketlendiği görüntülerde eğitilen bir algılayıcı bu karışıklığı öğrenir; yanlış etiketlere sahip bir test kümesi ise modelin başarısını hatalı bildirir. Temel veri odaklı yapay zekâ uygulamalarından biri olan temizleme, mimariyi değil veriyi iyileştirerek modelleri geliştirir.
Veri Kalitesi Modelleri Neden Sınırlar?#
Verilerdeki hatalar doğruluğu birkaç yönden düşürür. Yanlış etiketlenmiş örnekler hatalı girdi-çıktı eşleştirmeleri öğretir ve model gürültüyü ezberledikçe aşırı öğrenmeye yöneltir. Yinelenen örnekler bazı örneklere fazladan ağırlık verir; kopyalar hem eğitim hem değerlendirme bölümlerinde yer aldığında puanları şişiren veri sızıntısına yol açar. Bozuk dosyalar veri yükleyicileri çökertir veya sessizce atlanır; tutarsız sınıf adları ise tek bir kategoriyi birkaç kategoriye böler. Kıyaslamalar da etkilenir: Yaygın kullanılan 10 test kümesi üzerinde yapılan bir çalışma, örneklerin ortalama en az %3,3'ünde ve ImageNet doğrulama kümesinin en az %6'sında etiket hataları olduğunu tahmin etti. Düzeltilmiş etiketlerle puanlandığında, başlangıçta yanlış etiketlenmiş test örneklerinin oranı yalnızca %6 arttığında ResNet-18, ResNet-50'den daha iyi performans gösteriyor.
Yaygın Veri Temizleme Görevleri#
Tablo verileri genellikle pandas gibi kütüphanelerle temizlenirken, görü sistemlerinde görüntü dosyalarının ve açıklamaların kontrol edilmesi gerekir; piksellerden sınırlayıcı kutu koordinatlarına kadar her şey incelenir. Neredeyse aynı görüntüler gömme vektörleri karşılaştırılarak bulunur; vektör arama ise bu karşılaştırmayı milyonlarca görüntüye ölçeklendirir.
- Eksik değerler: Boş alanlar içeren kayıtlar silinir veya sütun istatistiklerinden ya da en yakın komşulardan yararlanılarak doldurulur. Görüntü veri kümelerinde etiketi olmayan bir görüntünün durumu belirsizdir; bilerek arka plan görüntüsü olarak bırakılmış veya kimsenin açıklama eklemediği bir görüntü olabilir.
- Yinelenenler ve neredeyse aynı olanlar: Bayt düzeyinde özdeş dosyaların karmaları aynıdır. Yeniden boyutlandırılmış veya yeniden sıkıştırılmış kopyalar ile art arda gelen video kareleri aynı değildir; bu nedenle algısal karmalara veya gömme benzerliğine ihtiyaç duyulur.
- Bozuk ve geçersiz dosyalar: Yarım kalmış indirmeler, desteklenmeyen biçimler, beklenmeyen renk kipleri ve çok küçük görüntüler çözümlenemeyebilir veya kullanılabilir bir sinyal taşımaz.
- Etiket hataları: Yanlış sınıflar, eksik nesneler ve gevşek ya da yanlış yerleştirilmiş kutular, denetimli görü verilerindeki en maliyetli hatalar ve gözle bulması en zor olanlardır.
- Tutarsız kategoriler: "Araba" ve "araba" gibi yazım farklılıkları ya da "otomobil" ve "taşıt" gibi örtüşen sınıflar tek bir sınıflandırmada birleştirilir; böylece her kavramın tek etiketi olur.
- Aykırı değerler: Negatif yaşlar veya görüntü kenarını aşan kutular gibi imkânsız değerler düzeltilmesi gereken hatalardır. Nadir ama geçerli örnekler korunur; çünkü modelin en çok öğrenmesi gerekenler çoğu zaman bu uç durumlardır.
Modelle Etiket Hatalarını Bulma#
Her etiketi elle incelemek ölçeklenebilir değildir; bu nedenle temizleme işlem hatları, hangi etiketlerin inceleneceğini sıralamak için eğitilmiş bir model kullanır. Açık kaynaklı cleanlab kütüphanesinde uygulanan güvenilir öğrenme, çapraz doğrulamadan elde edilen örnek dışı tahmin olasılıklarını kullanır ve modelin verilen etiketten farklı bir sınıfı yüksek güvenle tahmin ettiği örnekleri işaretler. Son kararı yine insanlar verir: Yukarıda anılan test kümesi çalışmasında, dış kaynaklı değerlendiriciler algoritmanın işaretlediği adayların %51'inin gerçek etiket hataları olduğunu doğruladı.
Dosya Kontrollerini Otomatikleştirme#
Dosya düzeyindeki kontroller, Veri Kümesi Kalite Kontrolü dersinde ele alınan etiket ve sınıf dengesi denetimleriyle birlikte her yeni veri grubunda çalıştırılabilecek kadar ucuzdur. Aşağıdaki betik, bir görüntü, onun birebir kopyası ve kesilmiş bir dosya içeren küçük bir klasör oluşturur; ardından Pillow ve içerik karması kullanarak kopyayı ve bozuk dosyayı işaretler:
import hashlib
from pathlib import Path
from PIL import Image
# A tiny image folder: one original, one exact copy, and one truncated download
folder = Path("images")
folder.mkdir(exist_ok=True)
Image.new("RGB", (640, 480), "orange").save(folder / "a.jpg")
(folder / "b.jpg").write_bytes((folder / "a.jpg").read_bytes())
(folder / "c.jpg").write_bytes((folder / "a.jpg").read_bytes()[:1000])
seen = {}
for path in sorted(folder.glob("*.jpg")):
try:
Image.open(path).load() # decode every pixel; a truncated file raises OSError
except OSError as error:
print(f"{path.name}: corrupt ({error})")
continue
digest = hashlib.md5(path.read_bytes()).hexdigest() # identical bytes give identical hashes
if digest in seen:
print(f"{path.name}: duplicate of {seen[digest]}")
seen.setdefault(digest, path.name)Betik b.jpg: duplicate of a.jpg ve c.jpg: corrupt (image file is truncated (5 bytes not processed)) ifadelerini yazdırır. Her görüntünün tümüyle çözülmesi önemlidir; çünkü dosyayı açmak yalnızca başlığını okur ve kesilmiş bir dosya bu adımı geçebilir. Ultralytics YOLO, bir veri kümesinin etiket önbelleğini oluştururken ilgili kontrolleri çalıştırır: görüntü sonu işareti olmayan JPEG'leri yeniden kaydeder, yinelenen etiket satırlarını kaldırır ve görüntüsü 10 pikselden küçük olan, koordinatları görüntü sınırlarının dışına çıkan ya da sınıf kimlikleri veri kümesindeki sınıfları aşan görüntü-etiket çiftlerini atlar. Ardından tarama özetinde görüntü, arka plan ve bozuk dosya sayılarını bildirir. Bu sınıf kimlikleri veri kümesinin YAML dosyasına göre belirlenir.
Veri Temizleme ve İlgili Terimler#
- Veri ön işleme: Zaten doğru olan verileri, görüntüleri yeniden boyutlandırma ve piksel değerlerini normalleştirme gibi işlemlerle modelin beklediği biçime dönüştürür. Temizleme ise hangi verilerin doğru olduğuna karar verir.
- Veri artırma: Eğitim sırasında temiz verilere çevirme ve renk kaydırma gibi kasıtlı çeşitlilikler ekler.
- Veri etiketleme: Etiketsiz veriler için etiket oluştururken temizleme, mevcut etiketleri denetler ve düzeltir.
- Veri kümesi yanlılığı: Bir veri kümesi hatasız olduğu hâlde bazı koşulları veya grupları yeterince temsil etmeyebilir. Yanlılığı gidermek için farklı veriler toplamak gerekir; yalnızca temizleme bunu sağlayamaz.










