Makine Öğrenmesi: Veri Kalitesi Hatasını Kaç
Makine öğrenmesi projelerinin çoğu başarısız olur. Sebep genellikle algoritma değil, veri hazırlığıdır. Bir model ne kadar iyi olursa olsun, kötü veriye karşı hiçbir şey yapamaz.
Veri kalitesi sorunu üç ana başlığa ayrılır: eksiklik, tutarsızlık ve önyargı.
Eksik veriler (missing values) en yaygın sorundur. Bir sütundaki değerlerin yüzde 40'ı boş ise, modeli eğitirken bu sütunu tamamen çıkarmak ya da eksik değerleri doldurma stratejileri kullanmak gerekir. Ortalama, medyan veya ileri yöntemler (KNN imputation, forward fill) işe yarar. Ama rastgele doldurma yapmak modeli yanılgıya sürükler.
Tutarsızlık, aynı verinin farklı biçimlerde kaydedilmesidir. "Istanbul", "İstanbul", "ISTANBUL" aynı şehir ama makine bunları farklı kategori olarak görür. Normalizasyon (lowercase, trim, standartlaştırma) gerekir.
Önyargı (bias) en tehlikelisidir. Eğitim verisi belirli bir grup için çok fazla örnek içeriyorsa, model diğer gruplar için hatalı tahminler yapar. Sağlık veri setinde bir cinsiyete ait örnekler fazlaysa, model diğer cinsiyet için güvenilmez olur.
Python'da veri temizleme için Pandas kütüphanesi standart araçtır:
1import pandas as pd2import numpy as np34df = pd.read_csv('veri.csv')56# Eksik değerleri kontrol et7print(df.isnull().sum())89# Eksik değerleri ortalama ile doldur10df['yaş'].fillna(df['yaş'].mean(), inplace=True)1112# Metin sütunlarını temizle13df['şehir'] = df['şehir'].str.lower().str.strip()1415# Veri türünü kontrol et16print(df.dtypes)Veri temizliği tüm projenin yüzde 70-80'ini alır. Hızlı geçmek cazip gelir ama sonradan pahalıya patlar. İyi bir makine öğrenmesi projesi, iyi temizlenmiş veriyle başlar.
0 yorum