CodeBlanks Logo Icon CodeBlanks

Veri temizleme

Eksik veriler (NaN) tespit edilir ve doldurulur veya çıkarılır.

Veri neden temizlenir?

Gerçek veri dağınıktır: yinelenen satırlar, yazım farkları ("ankara", "Ankara "), anlamsız değerler (yaş = -3). Model bunları ayırt edemez; "çöp girer, çöp çıkar".

df = df.drop_duplicates()                       # yinelenenleri at
df["sehir"] = df["sehir"].str.strip().str.title() # boşluk ve harf farkı
df = df[df["yas"].between(0, 120)]              # anlamsız yaşları at

Temizlik çoğu projede zamanın en büyük kısmını alır ve model seçiminden daha çok fark yaratır.

Aykırı değerler

Diğerlerinden çok uzak değerlere aykırı değer denir. Sık kullanılan bir kural çeyrekler arası açıklığa (IQR) dayanır:

x = np.array([10, 12, 11, 13, 12, 95])
q1, q3 = np.percentile(x, [25, 75])
iqr = q3 - q1
temiz = x[(x >= q1 - 1.5 * iqr) & (x <= q3 + 1.5 * iqr)]
print(temiz)   # [10 12 11 13 12]

Aykırı değer her zaman hata değildir (gerçekten çok pahalı bir ev olabilir); atmadan önce nedenini anlamak gerekir.

Uygulama Aykırı değeri ayıkla

x dizisinde 25. ve 75. yüzdelikleri np.percentile ile bul, IQR kuralıyla (1.5 katı) aykırı değerleri at ve kalan diziyi yazdır.

Başlangıç kodu

model.py
import numpy as np

x = np.array([5, 7, 6, 8, 7, -40, 6])

# buraya yaz

Örnek çözüm

model.py
import numpy as np

x = np.array([5, 7, 6, 8, 7, -40, 6])

q1, q3 = np.percentile(x, [25, 75])
iqr = q3 - q1
print(x[(x >= q1 - 1.5 * iqr) & (x <= q3 + 1.5 * iqr)])

Beklenen çıktı

[5 7 6 8 7 6]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 "çöp girer, çöp çıkar" ilkesi ne anlatır?

  • Kötü veriyle eğitilen model kötü sonuç verir Doğru cevap
  • Model kötü veriyi kendisi düzeltir
  • Veri ne kadar çoksa o kadar iyidir
  • Temizlik gereksizdir

Açıklama: Model yalnızca kendisine verilen veriden öğrenir; hatalı veri hatalı desen demektir.

2 Yinelenen satırları at.

Soru
df = df.____()
Cevap
df = df.drop_duplicates()

Açıklama: drop_duplicates birebir aynı satırların yalnızca ilkini tutar.

3 Sorunları çözümleriyle eşleştir.

Kavram Anlamı
Yinelenen satır drop_duplicates
Fazla boşluk str.strip
Harf farkı str.lower
Aykırı değer IQR kuralı

Başlangıç bölümündeki tüm dersler