Veri temizleme
- Makine Öğrenmesi kursu
- Başlangıç
- Ders 38/112
- 7 dk
Eksik verileri tespit edip temizlersin.
Boşlukları doldurma
İki boş hücre var: 2. günün nemi ve 3. günün sıcaklığı. Satırları atmak verinin %40'ını kaybetmek olur; bunun yerine her sütunu kendi ortalamasıyla dolduracağız. np.nanmean, nan'ları yok sayarak ortalama alır:
print(np.nanmean(veri, axis=0)) # [ 3. 23. 48.75]
print(veri.mean(axis=0)) # [ 3. nan nan] nan bulaşıcıdırnan içeren her işlem nan verir; bu yüzden nan-güvenli fonksiyonlar gerekir.
np.where ile seçerek doldurma
np.where(koşul, a, b), koşul doğruysa a'dan, değilse b'den alır. Yayınlama sayesinde sütun ortalamaları her satıra uygulanır:
ort = np.nanmean(veri, axis=0)
veri = np.where(np.isnan(veri), ort, veri)
print(np.isnan(veri).sum()) # 0Aynı işi scikit-learn'de SimpleImputer(strategy="mean") yapar; burada mantığını elle gördün.
Uygulama Temizle
veri'deki nan değerleri np.nanmean(veri, axis=0) ve np.where ile doldur. Sıcaklık sütununu (veri[:, 1]) ve nem sütununu (veri[:, 2]) alt alta yazdır.
Başlangıç kodu
import io
import numpy as np
csv = "gun,sicaklik,nem\n1,20,40\n2,22,\n3,,60\n4,26,50\n5,24,45\n"
veri = np.genfromtxt(io.StringIO(csv), delimiter=",", skip_header=1)
# buraya yazÖrnek çözüm
import io
import numpy as np
csv = "gun,sicaklik,nem\n1,20,40\n2,22,\n3,,60\n4,26,50\n5,24,45\n"
veri = np.genfromtxt(io.StringIO(csv), delimiter=",", skip_header=1)
ort = np.nanmean(veri, axis=0)
veri = np.where(np.isnan(veri), ort, veri)
print(veri[:, 1])
print(veri[:, 2])Beklenen çıktı
[20. 22. 23. 26. 24.] [40. 48.75 60. 50. 45. ]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 <code>np.array([1, np.nan, 3]).mean()</code> neyi verir?
- 2.0
- 1.33
- Hata
- nan Doğru cevap
Açıklama: nan içeren toplam nan olur; nanmean ise 2.0 verirdi.
2 nan değerleri yok sayarak sütun ortalamalarını al.
ort = np.____(veri, axis=0)
ort = np.nanmean(veri, axis=0)
Açıklama: nanmean, nan olmayan değerlerin ortalamasıdır.
3 Fonksiyonları eşleştir.
| Kavram | Anlamı |
|---|---|
np.nanmean |
nan'sız ortalama |
np.where |
Koşullu seçim |
np.isnan |
nan maskesi |
x.mean() |
nan varsa nan döner |